Skip to main content

Question: How to Launch an MPI Parallel Program Programmatically

I want to link a Java code with the parallel program I wrote five years ago in C. The program utilizes the Message Passing Interface (MPI) library from Argonne National Laboratory of the United States.

As far as I can imagine, there seems to be two alternative solutions for me so far.

The first one is to use Java Native Interface (JNI) technique to create a C header file the act as a stub linking a Java class to a native library -- in my case, I'm using Windows and Microsoft Visual C++ 2005 and the library will have to be a Dynamically Linked Library (DLL).

The second one, maybe, is to link the Java module and the C module by XML Web Services technology by using software tools such as Apache's Axis C++ or Microsoft's dot-Net technology plus SOAP messaging over the HTTP protocol. Microsoft .NET seems to be a whole new world for me and I don't think I have enough time and patience to learn it right now.

The solutions left are either to use JNI + C (a Java-wrapper solution) or C + Axis (a Web service-wrapper solution).

Now comes a common problem: my C code was written as an MPI parallel program and I want to retain the parallel processing functionality. MPI programs are supposed to be launched by a special launcher -- the "mpirun" script in the now outdated MPICH implementation or the "mpiexec" in the current MPICH2 implementation.

I don't want a solution that creates an operating system "shell" session from the Java or C code to execute mpirun/mpiexec and puts the name of the parallel program as the argument of the launcher. I am searching for a more elegant way to launch the parallel code programmatically.

Keywords: , , , ,

Comments

Popular posts from this blog

A Thought on a Reasoner-enabled Version of Del.icio.us (and perhaps Technorati)

I have been adding more bookmarks to my del.icio.us account and have begun tagging them with RDF-like object/datatype properties. Adding more and more object/datatype properties to the bookmark, a provoking thought popped up: It would be nice if tagging can be assisted by ontologies and a logic reasoner. Look at del.icio.us/thitiv . The _hasAffilication:CUPhoto property should be a subproperty of _hasAffiliation:Chula (provided that CUPhoto stands for Chula Photo Club .) Also, aticles on 'tagging' are subclass of articles on 'metadata'. But articles on 'metadata' are not essentially the articles on 'tagging'. 'Friends' versus 'people' is also another example. Bookmarks about my friends are of course bookmarks about people. But not all the people I know or found on the Internet (through search engines) are my friends. Ontology-assisted tagging sounds promising to solve this problem. In principle, this problem is partly related to...

Tips: Mac OS X: Full ANSI Color Support in Terminal.app

I'm trying to switch my Java development platform from Windows XP to Mac OS X Tiger. Wondering how to colorize the Terminal screen, I spent some time googling. From the discussions at the end of this page: macosxhints.com - Add full ANSI color support to Terminal.app Here's a summary of how to enable it: With bash shell as default, simply add export TERM=xterm-color [I prefer this for Linux compatibility] or export TERM=dtterm in the ~/.profile (single-user) or /etc/profile (system-wide) Color terminal is enabled. Use ' ls -G ' (the -G enables color output) to test. Add alias ls='ls -G' in the profile file for convenience. Keywords: mac-os-x , unix , terminal , shell , tips

Tip: Converting a CSV File into XML by Excel

I came across a problem to convert a historical data in comma-separated format (CSV) into a modern & more useful XML format. There are many ways to do such conversion. The most obvious one is to do it programmatically by writing a program to read CSV data and exporting it to an XML file by means of the Simple API for XML (SAX) or the Document Object Model (DOM) libraries. But I was too lazy to do it. I knew that Microsoft Excel 2003 supports exporting worksheets into XML data. I tried it out but found that it is not that simple -- we have to define an XML schema and bind each element to each column of the worksheet. So I went on researching. Finally, I found a very useful tool on MSDN: Excel 2003 XML Tools Add-in Version 1.1 ( download ). The Excel Add-in's "XML Tools -> Convert a Range to an XML List" menu command allows us to simply select a range in a worksheet (with or without first row as column names) -- with the advanced options to specify the XML root ...