Parallelization of the Gagneur/Klamt Algorithm for Calculating Elementary Nodes of Metabolic Graphs

 

The purpose of this project was to create an implementation of the algorithm in Gagneur and Klamt that can operate on larger metabolic networks than the current best tool (METAtool).  The approach was to use the Star-P tool, which provides a simple means of parallelizing MATLAB programs on a remote HPC system.  We implemented the combinatorial algorithm in its serial MATLAB form, which runs 50 times slower than the optimized METAtool implementation.  We then parallelized it, first with vectorizing the three inner loops of the core algorithm, but that method proved to use too much memory to run practically.  We then parallelized it in a task-parallel form that runs 1.78 times faster than the serial version of the algorithm (though using many more processors), but which uses a type of parallelism that will not scale effectively to large problems for the combinatorial test.  We then implemented the rank test  (which could be implemented to scale in parallel to larger problems), but were not able to determine whether the different results between the two tests were material.  Finally, obstacles encountered and some further approaches that might be practical are described.