Introduction
This plug-in contains two parallel implementations of the Force Atlas layout, one running on CPUs (OpenMP) and one running on GPUs (CUDA).
Plugin Owner's Notes
Details
It uses libraries written in Fortran and C++ to perform the costly O(n2) repulsion between nodes. The parallelization of the CPU implementation is done using OpenMP, multiple threads being created and the work being divided among them. The version of the layout running on GPUs was implemented with CUDA and is based on the "Fast N-Body Simulation with CUDA" paper published in the GPU Gems 3 book.
PerformanceThe CPU implementation performs more than 50 times faster than the standard Force Atlas on recent multi-core architectures. The increase in speed is the result of thread-level parallelism (OpenMP), instruction-level parallelism (SSE instructions) and the superior performance of Fortran for compute-intensive tasks.
The performance of the GPU implementation depends on the number of nodes in the graph. It is more than 1,000 times faster than the standard Force Atlas with a graph of 100,000 nodes. It is not advised to use this implementation with less than 1,000 nodes as it does not perform as well as the CPU implementation.
*Windows 64 bit
*A CUDA compatible NVIDIA graphic card with the latest driver installed (GPU implementation only)
v0.1: July 8th, 2011
*First release of the plug-in
*Contains the parallel implementation running on CPUs
v0.2: July 23rd, 2011
*Added the parallel implementation running on GPUs
*Tested on Quadro 2000 and Geforce GT 540m graphic cards



25 July 2011 at 7:45 am | Permalink
Also tested on GeForce GTX 560M with latest driver (http://www.nvidia.com/object/notebook-win7-winvista-64bit-275.33-whql-driver.html)
12 August 2011 at 9:04 pm | Permalink
Will this implementation work in a Macbook Pro too? Or is the parallellization depending on Windows 7 features?
14 August 2011 at 12:10 am | Permalink
The plugin doesn’t currently work on Mac but a version running on Mac is planned. The parallelization doesn’t depend on any Windows feature, it is only a matter of compiling and testing the libraries on each individual platform.
2 January 2012 at 12:32 am | Permalink
Any news on the OSX build mentioned last August? Also is there a link to the source code repo somewhere? Searching led me to http://bazaar.launchpad.net/~pbittner/gephi/parallelLayouts/files/head:/ParallelForceAtlas/src/org/gephi/parallelForceAtlas/ … but not sure if that’s the main version.
19 January 2012 at 2:21 pm | Permalink
I am currently rewriting the Fortran code of Parallel Force Atlas in C++ to simplify the compilation process. When this is done, it should be easier to compile the engine side of the plug-in on Mac. I have also implemented the Force Atlas 2 layout with the Barnes-Hut algorithm using CUDA and I plan to include it in the plug-in. Regarding the source code, the implementation running on CPUs is available at the location you mentioned but the CUDA implementation isn’t there. I’ll upload an updated version of the source code to github as soon as possible.