»

Compilers, parallelization tools (message passing interfaces etc.), and such, intended to ease the effort of producing parallelizable code for efficient execution in HPC and multicore environments. These tools may automate the parallelization of the code, or provide a framework in which parallelizable regions can be easily expressed.

»

Applications that aid the developer in determining whether the target program operates correctly, or in determining where issues could result in errant behavior. To be useful in multi-core environments, a debugger must be capable of handling threaded or multi-process programs as necessary for the target programs execution environment. Checking programs are included in this class - applications that examine the code of the target to determine whether anomalies can be detected.

»

Various mechanisms that provide for the ability to schedule execution of application work units across the available processing elements (cores) available to the system. The tools may adjust the scheduling based on administrator input, or even dynamically based on resource usage. The scheduling tools are responsible for keeping all of the cores as busy as possible.