Short Hands-On Introduction to Fortress

Monday, 20 Oct 2008, 9a-4p (Palace of Fine Arts, MPK16-1461)

Fortress is a new programming language designed to make it easier to write parallel programs for tomorrow's machines. Unusual features of Fortress include implicit parallelism (for loops are parallel by default), transactional memory, and a syntax based on mathematical notation. In this class we will give a hands-on introduction to the Fortress programming language for experienced programmers through short programming examples. By the end of the class you will have written a short parallel program of your own, and have run it on your laptop.

The class will be taught by Christine Flood and Jan-Willem Maessen, two members of the Fortress implementation team at Sun Labs in Burlington, MA. Note that the class will run for 6 hours, with extra break time between sessions. Lunch will be provided.

Students should bring their own laptops; for more information on setting your system up for the class please see below.

Preparing for class

In order to run Fortress on your laptop, you will need the following:

  • Java 1.5 or better
  • Ant 1.6 or better
  • Your favorite text editor (we're both emacs users)

Note that the instructors are most familiar with Mac and Solaris; if you plan to bring your Windows laptop it's a good idea to install and test Fortress in advance.

Install Fortress in advance:

  • We will assume that you have installed this zip distribution for Fortress (svn version 2945), or are using an svn release that is at least this recent. Unzip the zip file and make sure you can run bin/fortress or bin/fortress.bat.
  • If you are comfortable with svn, you may find it easier to get Fortress from our svn repository. See the instructions on our Quick Start Page. If you're using svn your best bet is to svn update; ./ant clean compile the day before the class.
  • Make sure you can run hello.fss in the resulting distribution. Better still, run ./ant test and make sure it runs to completion without errors.
  • Add the bin directory of the Fortress distribution to your path if you like. (Otherwise, be prepared to run all the Fortress tools using an explicit path).

If you have questions or problems in this step, please drop an email to both the instructors: Christine.Flood@…, JanWillem.Maessen@…. Note that we will be traveling the weekend before the class, so you should try to install Fortress before the end of the week. If things break before class time, we'll try to work with you during the lab time to get things up and running, but this will cut into the time you'll have to actually write Fortress code.

Optional: Install Editor Support for Fortress:

  • If you want syntax highlighting for vim or emacs, look at the editor support and tweak your local settings. We won't be spending class time fiddling with editor modes; you're on your own here.

Schedule

  • Pre-class bagels
  • 9:00: Welcome
  • 9:10: Introduction to key Fortress concepts (Christine)
  • 9:50: Fortress example program (Christine)
  • 10:30: Break (10 min)
  • 10:40: Programming using Generators and Reductions (Jan)
  • 11:20: Completing the picture: Language Constructs and Libraries (Jan)
  • 12:00: Lunch (food in Sutro Baths across the hall)
  • Afternoon: Lab time! Write and run a short Fortress application. Participants may work alone or in groups.