Program performance may be improved by efficiently programming some key sections of the software. We present a methodology for converting selected portions of source code into automatically scalable multithreaded routines, without forcing programmers to concentrate on parallel programming issues. These developed routines can be reused across various projects, operating systems and system architectures. To support this methodology two separate but tightly coupled tools have been developed -PARSA/sup (TM)/ software development environment (SDE) and the ThreadMan/sup (TM)/ thread manager. The SDE addresses programming issues by allowing a graphical object based approach to develop multithreaded routines that abstracts the users from parallel programming. ThreadMan manages the software developed using SDE. ThreadMan is a user-level thread manager that automatically spawns and schedules threads at runtime. Two examples have been developed using this methodology to demonstrate that there is virtually no degradation in performance when compared to sequential code, in a single processor system and scalability is achieved as the number of processors is increased.
['Vijay Murthi', 'David Levine', 'Behrooz Shirazi', 'Jeff Marquis']
A tool based methodology for development of automatically scalable and reusable parallel code