******************************************************************************** SISAL WORKSHOP AMSTERDAM, THE NETHERLANDS May 25-27 1994 ******************************************************************************** PRESENTED BY: CWI (CENTRE FOR MATHEMATICS AND COMPUTER SCIENCE) & IC3A (INTERDISCIPLINARY CENTER FOR COMPLEX COMPUTER FACILITIES AMSTERDAM) Sisal (Streams and Iterations in a Single-Assignment Language) is a general- purpose functional language. Functional languages support implicitly the development of determinate, machine-independent parallel software. Sisal has a PASCAL-like syntax similar to structured imperative languages. This facilitates fast learning and ease of use by non-computer specialists. Sisal implementations exist for: the family of Cray supercomputers, Convex C-2, Sequent Symmetry, Encore Multimax, SGI systems, and Sparc and RS6000 clusters. Recent studies have shown that Sisal programs can run comparable to parallel imperative programs. This workshop will be lead by the developers of Sisal and will cover the fundamentals of functional programming and the Sisal language. It is intended for graduate students and practitioners in any scientific field; in particular, we encourage scientists developing large applications requiring the parallel resources of the largest computer systems to attend. Participants can expect to complete a substantial portion of an application of their choice in Sisal by the end of the workshop. Participation is limited to about 20 people. Participants must register by filling up and sending the registration form, below, to the specified address. All registrations and (proof of) payments must be received no later than 4 May 1994. The workshop fee is NLG. 195 (excluding all transaction, transfer, and bank charges), payable by bank transfer to the following account: Stichting Wiskunde en Informatica Congressen Account # 31.35.57.977 RABO Bank, Middenweg 88, Amsterdam Please make sure to indicate "Sisal Workshop" on your payment. The workshop fee covers course material, computer access time during the course, lunch and break refreshments for three days, and a drinks and hors d'oeuvres reception on the first evening. Participants are responsible for their own accommodations and travel.Amsterdam is a tourist attraction, especially during the months of summer, and it may be difficult to find suitable accommodations on short notice. Participants who need more informationor assistance with their accommodations may contact the local workshop organizers. For more information contact: (Administrative) (Technical) Frans Snijders Farhad Arbab CWI, P.O. Box 94079 CWI, P.O. Box 94079 1090 GB Amsterdam 1090 GB Amsterdam The Netherlands The Netherlands Telephone: +31 20 592-4171 Telephone: +31 20 592-4056 Email: franss@cwi.nl Email: farhad@cwi.nl Fax: +31 20 592-4199 Fax: +31 20 592-4199 OBJECTIVES: - Introduction to functional languages - Introduction to Sisal - Sisal programming MOTIVATION: The Von Neumann model of execution has greatly influenced the development of programming languages; so much so, that programs written in conventional, imperative languages are high-level encodings of instruction sequences. These programs express "how to" solve the problem, rather than "what to" solve. Not surprisingly, imperative languages have proven inappropriate for parallel computing. The encoded order of computation is usually inappropriate for the target machine and difficult to parallelize. Further, since programmers must express how to solve the problem, they are responsible for managing concurrent accesses to shared data, interprocess communication, and process scheduling. These additional responsibilities frustrate programmers and thwart effective machine use. One important alternative is functional programming. In addition to stressing sound software engineering practices, functional languages implicitly support the development of determinate, machine independent parallel software. As a result of recent advances, functional programs can now execute as fast as imperative programs on supercomputers in both scalar and vector mode. Performance is no longer an issue. The functional paradigm is based on the principles of mathematics. The order of execution depends on the availability of data only. The textual position of a statement is irrelevant. The programmer describes "what to" solve and leaves implementation details to the compiler, operating system, and hardware. In particular, the programmer is not responsible for managing shared data, interprocess communication, or process scheduling. Mathematicians write mathematics, chemists write chemistry, and physicists write physics. The objective of this workshop is to teach the current state of the art in scientific functional programming. The workshop will be divided into morning lectures and afternoon laboratory sessions. The lectures will teach the fundamentals of functional programming and what it means to think functional (as opposed to imperative). We will teach Sisal, a general-purpose functional language. We will explain the copy and memory management problems inherent to functional programming and how we have solved them for Sisal. We will show by extensive examples, that Sisal is a natural medium for expressing scientific computations, and that Sisalprograms are simpler, cleaner, and easier to maintain than imperative programs. In the laboratory sessions, students will design, write and debug Sisal programs. Students will have access to parallel systems on which to execute their Sisal programs. While we will have a series of exercises for the students to complete, each student should come with their own application to work on. Students can expect to complete a substantial portion of their application in Sisal by the end of the workshop. TENTATIVE WORKSHOP OUTLINE: Day 1 A. Morning Lecture. 1. Introduction to functional languages 2. The basics of Sisal B. Afternoon Laboratory 1. Introduction to the Sisal software 2. Programming exercises Day 2 A. Morning Lecture 1. Arrays, Records, and Unions 2. Parallel and Iterative Loops B. Afternoon Laboratory 1. Programming Exercises 2. Student codes Day 3 A. Morning Lecture 1. The Optimizing Sisal Compiler 2. The Sisal runtime system B. Afternoon Laboratory 1. Programming Exercises 2. Student codes Registration Form:Please register me for the Sisal Workshop. Name: ______________________________________________________________ Affiliation: ______________________________________________________________ Address: ______________________________________________________________ ______________________________________________________________ ______________________________________________________________ Phone: ______________________________________________________________ email: ______________________________________________________________ Return to: Frans Snijders CWI P.O. Box 94079 1090 GB Amsterdam The Netherlands Telephone: +31 20 592-4171 Email: franss@cwi.nl Fax: +31 20 5924199