Sections

Par4All

Par4All is a platform that merges various open source developments to aim at achieving the migration of software to multicore and other parallel processors

Pa4All is an open-source environment to do source-to-source transformations on C and Fortran programs for parallelizing, optimizing, instrumenting, reverse-engineering, etc. on various targets, from multicore system-on-chip with some accelerators up to high performance computers and GPU.

The interest of the source-to-source approach is to capitalize on the real value of an application (its source!) and generating other sources that can be used by the better back-ends available: optimized compilers for a given processor, vendor compilers for embedded processors, CUDA or OpenCL for GPU, OpenMP, MPI... One source, run everywhere!

Par4All current version

The current 1.0 version can generate CUDA code from C code and OpenMP from C and Fortran code with a simple easy to easy-to-use high-level script p4a. With this script, you can get a parallelized version of  your sources or even call the backend compiler to generate executable binaries with gcc, nvcc or icc for example.

In the benchmarks folder, there are some performance results with Par4All on multicores and GPU.

Internally, Par4All is currently composed of different components:

What is going on?

  • Better CUDA generation (loop fusion, interprocedural static and dynamic communication optimizations... )
  • Scilab and xcos to CUDA (come to see the prototype demo at the HPC Project booth at GTC 2010 in San Jose on 2010/09/20-23)
  • Improving vector code generation (x86 SSE, ARM Neon, CUDA and OpenCL vector)
  • Code generation for the CEA SCMP (Scalable Chip Multi Processing) architecture
  • Code generation for Scaleo Chip Leon3 MP-SoC
  • Improving the OpenMP output
  • Better #include recovering in the source output
  • OpenCL code generation
  • Full C99 support
  • Fortran 95 support with the gcc/gfc front-end
  • Automatic instrumentation for loop parameters extraction at runtime
  • More user-friendly interfaces

Roadmap

  • Par4All 0.1 and 0.2 went out to provide Fortran 77 to OpenMP parallelization to modernize legacy code and C to OpenMP parallelization. There were first releases to test the integration process and were not really distributed as packages or with high level compilation scripts
  • Par4All 1.0 (07/2010) parallelizes Fortran and C to CUDA and is the first easy to use version
  • Par4All 1.1 (09/2010) will parallelize Fortran to CUDA
  • Par4All 1.2 (03/2011) will parallelize Scilab to CUDA, OpenCL & OpenMP

Par4All members & SUPPORT

Members

Par4All is currently supported by different organizations:

Support

Par4All is currently funded by different projects:

Document Actions
« September 2010 »
September
MoTuWeThFrSaSu
12345
6789101112
13141516171819
20212223242526
27282930