SEMINAR

Threaded and Concurrent Programming for High Performance Computing

Clay Breshears

Research Scientist, CHPSR
SPP Tools Lead, ERDC MSRC

ABSTRACT

It has become clear that the emerging class of high performance computers will have architectures based upon clusters of shared-memory processors. The SGI Origin2000 and IBM Winterhawk systems are early examples of such platforms. A distinguishing characteristic of this architectural class is that it offers dual-mode parallelism: simultaneous shared- and distributed-memory programming is possible. While MPI has become the de facto standard for message passing, threads and thread-based schemes are powerful and convenient methods to exploit the advantages of shared-memory programming.

This talk will present a brief introduction of two threaded programming paradigms: OpenMP and Pthreads. OpenMP provides a portable, hardware-independent interface to threads through programming directives. While OpenMP affords robust support for loop-level parallelism by spawning threads of execution for loop iterations, it is also designed to give the programmer fine control over variable scope, thread scheduling, and thread synchronization. Pthreads is a POSIX standard library for multithreading. Tasks are assigned to threads that execute concurrently. On symmetric multiprocessors, threaded tasks can execute in parallel.

Besides presenting syntax and coding examples, the strengths and weaknesses of each shared-memory programming standard will be discussed along with the tradeoffs in using one over the other. Performance issues as well as some of the subtle programming pitfalls and perils of each method will be examined in order to equip new users with the knowledge and insight needed to make effective use of threaded programming.

WHERE: TEC 251

WHEN(day): Friday, October 15th, 1999

WHEN(time): 2:00 PM

EVERYBODY IS INVITED