Friday, November 20, 2009

Static-Analysis: Parallel programs

Currently, static analysis for parallel programs doesn't exist neither as a commercial nor as a open-source product. Parallel programs communicate through nodes using Message Passing Interface (MPI) libraries and all MPI implementations are libraries including binary objects. As a consequence, when a compiler translates and optimizes a parallel application with calls to MPI, it will treat the MPI calls as a black box and avoid optimizing the calls and in some cases the code that surrounds them. As compiler cannot be constructed to communicate based on node-to-node communication, we need some static-analysis tools, which can analyze both warnings and defects at parallel programming level.

There are debuggers like - Marmot, ISP, Total View, DDT, etc., which analyses run-time errors like deadlocks, race-conditions, correct construction and destruction of resources, issue warnings in the case of non-portable constructs, MPI API usability correctness (i.e. verification of arguments such as tags, communicators, ranks, etc.) and many more but analyzing parallel programs source code statically, are totally absent.

The concepts and need of static analysis for parallel programming as a software tool, a product for computer scientists of HPC scientific-applications community will be shared soon as a part of information sharing.

5 comments:

calcium said...

Parallel programming is used specifically to serve working software developers, not just computer scientists. It is a complete, highly accessible pattern language that will help any experienced developer "think parallel"-and start writing effective parallel code almost immediately. Instead of formal theory, it deliver proven solutions to the challenges faced by parallel programmers, and pragmatic guidance for using today's parallel APIs in the real world.

Mukkaysh Srivastav said...

I appeciate your feedback.

Mukkaysh Srivastav said...

This year (2010) one of goals is to try implementing "Static-Analysis: Parallel Programs" as a program verification tool. It's implementation is a deep topic, so obviously the disclosure as a product would be in brief but not a detailed description of passes developed.

Anonymous said...

Have you look at ISP from University of Utah?

Mukkaysh Srivastav said...

yeah, I am aware about ISP.