Parallel Computing: Checking Out Eclipse Parallel Tools Platform

As promised in my last blog, I have decided to check out Eclipse Parallel Tools Platform (PTP). This particular plug-in looks interesting as it aims to development a complete industry-strength platform for the development high performance computing applications.

The aim of the parallel tools platform project is to produce an open-source industry-strength platform that provides a highly integrated environment specifically designed for parallel application development. The project will provide a standard, portable parallel IDE that supports a wide range of parallel architectures and runtime systems, a scalable parallel debugger, support for the integration of a wide range of parallel tools and an environment that simplifies the end-user interaction with parallel systems.

Before we proceed, please make sure you have a copy of Eclipse CDT and OpenMPI installed. If not please check out my previous blog about the topic.

Note: PTP requires the ORTE and OMPI header files that are not standard in the Fedora Core 6 version of the openmpi RPMs. Noted below is how to get and build the RPMs from the official OpenMPI distribution.

  1. Download SRPM from official OpenMPI website.
  2. Install and build necessary RPMs. Notice the additional command line option in the rpmbuild command to ensure that the necessary headers are build. This is never standard. Building from source takes sometime. So maybe at this point, you can take a break. OR if you are using Fedora Core 6 then you can download my built RPM here.

    rpm -Uvh openmpi-1.2.3-1.src.rpm
    rpmbuild -bb /usr/src/redhat/SPECS/openmpi-1.2.3.spec --define 'configure_options --with-devel-headers'

  3. Remove all old Fedora RPMs

    rpm -e openmpi openmpi-devel openmpi-libs

  4. Install new OpenMPI RPMs

    rpm -Uvh openmpi-1.2.3-1.i386.rpm

  5. That was not so hard was it?

Then you have to have xmlto, gdb and a Java 1.5 runtime installed. Another note is you will have to use the official Java Java and not gcj. gcj does not work with PTP. If you have this then we are ready to start.

  1. First step will be to download the PTP core plug-in and the Parallel Language Development Tools plug-ins from the Eclipse website. Unfortunately, there is no update manager link yet. This is still bleeding edge stuff you know and as you will see later … there is special stuff to do.
  2. Unpack installers into the Eclipse directory.

    cd eclipse/..
    tar xvzf org.eclipse.ptp-1.1.0.tar.gz
    tar xvzf org.eclipse.ptp.pldt-1.1.0.tar.gz

  3. Then, we will have to build the files the plug-ins. Of course, you have to take note of the CPU architecture and operating system you will be running this tool on. Obviously, I will be using a Linux system on an x86 processor. If there are errors during the compile then something went wrong. Usually, the problems are because of the missing OpenMPI headers and libraries. So, please make sure that they are available.

    cd eclipse/plugins/org.eclipse.ptp.linux.x86/
    sh ./BUILD

  4. Start eclipse and force detection of new plug-ins. (eclipse --clean)
  5. Select the Other then the ‘PTP Runtime perspective’. If you do not see a PTP Runtime or PTP Debug perspectives please go to the Eclipse Software Manager (Help -> Software Updates -> Manage Configuration). Select the ‘Show Disabled Features’ button. Look for ‘Eclipse Parallel Tools Platform’ and ensure that is it enabled. If it is disable just enable it.
  6. Add OpenMPI include files. Go to Preferences -> PTP -> Parallel Language -> MPI then add /usr/include into the path. Do the same for OpenMP.

Now we are done with installation part. We can now proceed to trying it out. Here are some of the things you can check out with this new tool.

  1. Creating a New MPI Project. This is now nicely integrated into Eclipse. Just create a normal ‘New Managed C Project’. You will fill out the details as usual but in the end you will see a screen called ‘MPI Project Settings’. The defaults are typically ok. Just enable the ‘add MPI Project settings to this project’ radio button.
  2. Artifact Analysis. This is part of the PLDT component of PTP. Just select the folder or source file you want to analyze and click on the ‘Run OpenMP Analysis’ or ‘Run MPI Analysis’ buttons. Then a tab will open views (OpenMP Artifact View and MPI Artifact View) showing the artifacts found. You can now also hover on these artifacts to get more details about them.
  3. Content Completion. Like any other CDT or Java application, you can use Eclipse’s content completion features by pressing ctrl-space.
  4. Running Parallel Applications. You can do this by creating a new parallel launcher. This can be done by going to Run->Run->Parallel Application and creating a new launcher. The default name is normally acceptable. Just pick the necessary binary. Go to the Parallel Tab to select the machines you are going to run this job on and the number of processes you want to spawn. For demonstration purposes, pick a good number … like 4. Under debug, select SDM as the debugger. The rest of the tabs work the same way as a usual CDT application. Then just click on ‘Run’. You maybe be asking … ‘Where did my output go?’. Don’t panic, go to the left navigation panel and select Jobs. You will then see your number number and the associated processes. Just double-click on a process and you will see the standard output display of that process.

Well, PTP definitely makes it more convenient to run and debug MPI applications in Eclipse versus the method in my previous blog. Hope this helps. Good luck and have fun!

3 Responses to “Parallel Computing: Checking Out Eclipse Parallel Tools Platform”

  1. success Says:

    keep up the good work

  2. It’s hip2b2 (Mobile, Security, Web 2.0, Pipe Dreams and More) » Blog Archive » Parallel Computing: HDF5 and MPIO for Fedora Core 6 Says:

    […] black berry unlocked « Parallel Computing: Checking Out Eclipse Parallel Tools Platform […]

  3. hip2b2 Says:

    The openmpi that comes with Fedora Core 8 (version 1.2.4) does not require you to replace it anymore.

Leave a Reply