Tuesday, December 22, 2009

Multicore Review: Best Multicore Posts of 2009

MulticoreInfo.com has published 1800 posts in 2009 linking to useful resources of multicore related information. Among those, my acticle on Auto-Vectorization has been within top 10 posts as declared by MulticoreInfo.com. Appreciate all readers in making my article in top 10 among 1800 as posted on MulticoreInfo.com in 2009.

Please check this link.

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.

Wednesday, October 21, 2009

GCC Internals

GCC Internals has been designed w.r.t v-4.3 in 2007. Complete sinerio of GCC Front-End, Middle-End and Back-End has been discussed. It does serve the purpose of giving an outline of GCC Internals.

Vectorization

This article is posted on Intel Software Network (ISN) forum. This is something normally Compiler developers try to promote – how C/C++ source code can be vectorized by a compiler. I have emphasized in this paper that compared to rewriting code with assembly code, with the approach as described with an example here, one can get code that is (i) easier to read and understand (ii) easier to maintain and (iii) still get optimal performance.