
rian Lake visited the Institute from Myrias Software Corporation in Edmonton, Alberta, Canada where he has 12 years of parallel system development experience. Brian presented a seminar on PAMS (Parallel Application Management System) from Myrias. PAMS is an application programming interface that allows shared memory parallel program development on a distributed memory machine such as the IBM SP or a cluster of workstations. The unique memory coherency capabilities allow parallelization without the typical line-by-line dependency checking required by other shared memory environments. According to the developer, PAMS has been used on large commercial applications to achieve speedup with little source modification. PAMS is installed on the Institute's IBM SP.
 |
| Supercomputing Institute User Support Specialists Birali Runesha (left) and Shuxia Zhang (center) talk with Brian Lake (right) about some technical aspects of PAMS after the seminar. |
This talk was geared to scientific programmers desiring parallel performance on the IBM SP who wish to determine if PAMS will benefit their application. The talk began with a short summary of the capabilities and features of PAMS, with primary emphasis being on those features available to ensure parallel correctness in the application. Achieving parallel correctness using PAMS is usually straightforward, but moving from parallel correctness to parallel performance is where most users require assistance.
The majority of this talk outlined the architecture and accompanying performance model of PAMS. The major PAMS facilities (I/O subsystem and Virtual Memory management) were introduced, and the accompanying statistical monitoring subsystem was explained. A logical process was outlined for evaluating uniprocessor performance, improving uniprocessor performance, and then extending the software to a 2-processor execution model. At this point, several facilities are available to examine and improve program performance. Once completing this step, the PAMS user may specify virtually any number of processors for their program execution.
|
|