Proposals:Compiling on Bluegene Supercomputer: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
No edit summary
No edit summary
Line 20: Line 20:
Too many changes to be made along the way. The maximum I got to was 60%. I've deferred this job for later.  
Too many changes to be made along the way. The maximum I got to was 60%. I've deferred this job for later.  


==Notes for compiling using mpicc compiler==
==Notes for compiling using mpicc==


This is a MPI wrapper written over the gnu compiler for PowerPC.  
This is a MPI wrapper written over the gnu compiler for PowerPC.  
Line 26: Line 26:
There are two ways to do this
There are two ways to do this


Compile using the MPI wrapper itself
*Compile using the MPI wrapper itself


The problem with this is that the MPI wrapper itself is not small, and there is no need to set the  
The problem with this is that the MPI wrapper itself is not small, and there is no need to set the optimization flags (which makes compilation slow usually) used by the wrapper. More often than not it will interfere adversely with your CMake setup. Nevertheless, this is one option.
optimization flags (which makes compilation slow usually) used by the wrapper. More often than not it  
will interfere adversely with your CMake setup. Nevertheless, this is one option.


Compile using the gnu compiler used by the wrapper
*Compile using the gnu compiler used by the wrapper


The problem with this is that CMake will force the C/C++ compiler for all projects that use ITK later,
The problem with this is that CMake will force the C/C++ compiler for all projects that use ITK later, to be this. This means, you cannot just set the MPI Wrapper for all future compilation of the project by setting CMAKE_C(XX)_COMPILER. So, the way I did it is to have a local copy of the gnu compiler (used inside the wrapper) and name it as mpicc/mpicxx. Later, I'll replace it with the original MPI wrappers for all my future projects. I know, this is a dirty hack for now. CMake is happy, and so are we!
to be this. This means, you cannot just set the MPI Wrapper for all future compilation of the project by  
setting CMAKE_C(XX)_COMPILER. So, the way I did it is to have a local copy of the gnu compiler (used inside  
the wrapper) and name it as mpicc/mpicxx. Later, I'll replace it with the original MPI wrappers for all my
future projects. I know, this is a dirty hack for now. CMake is happy, and so are we!


From here on, I'll talk about the problems that you *might* encounter in the method 2. Feel free to try 1
From here on, I'll talk about the problems that you *might* encounter in the method 2. Feel free to try 1

Revision as of 23:15, 25 March 2008

This page describes the changes that are needed in ITK in order to make possible to build it in the Bluegene/L supercomputer.

The tests have been developed at the Bluegene/L machine available at the Rensselaer Polytechnic InstituteRPI. This computer, located at the RPI Computational Center for Nanotechnology Innovations is the seventh worlds largest supercomputer, according to the Top500 list released on June 2007.

Developers

  • Arunachalam Narayanaswamy
  • Pat Marion
  • Luis Ibanez

List of Changes using the mpixlC compiler

  • Remove optimization (use -O0) from the following files
    • Insight/Utilities/vxl/v3p/netlib/linpack
      • csvdc.c
      • zsvdc.c
    • Done by adding a SET_SOURCE_FILES_PROPERTIES() command in the CMakeLists.txt file of "netlib".

Too many changes to be made along the way. The maximum I got to was 60%. I've deferred this job for later.

Notes for compiling using mpicc

This is a MPI wrapper written over the gnu compiler for PowerPC.

There are two ways to do this

  • Compile using the MPI wrapper itself

The problem with this is that the MPI wrapper itself is not small, and there is no need to set the optimization flags (which makes compilation slow usually) used by the wrapper. More often than not it will interfere adversely with your CMake setup. Nevertheless, this is one option.

  • Compile using the gnu compiler used by the wrapper

The problem with this is that CMake will force the C/C++ compiler for all projects that use ITK later, to be this. This means, you cannot just set the MPI Wrapper for all future compilation of the project by setting CMAKE_C(XX)_COMPILER. So, the way I did it is to have a local copy of the gnu compiler (used inside the wrapper) and name it as mpicc/mpicxx. Later, I'll replace it with the original MPI wrappers for all my future projects. I know, this is a dirty hack for now. CMake is happy, and so are we!

From here on, I'll talk about the problems that you *might* encounter in the method 2. Feel free to try 1