[vtkusers] Java/vtkMPI problem/question

Jeremy Stout stout.jeremy at gmail.com
Wed Jun 29 13:27:22 EDT 2005


Hello, I am trying to write a simple VTK-MPI test program in Java.
After working my way through some library loading errors, I getting
the following error message when running my program:

[stout at energy preprocessor]$ java VTKMPITester
Fatal error; unknown error handler
May be MPI call before MPI_INIT.  Error message is MPI_COMM_SIZE and code is 197
Generic Warning: In
/usr/home/stout/vtk/VTK-Download-5-16-2005/VTK/Parallel/vtkMPICommunicator.cxx,
line 237
MPI error occured: Null communicator

I've also tried submitting to my computer cluster that is running
TORQUE and get the same error message. In my torque file, I am using
"mpirun <mpi options> java VTKMPITester".

Here is the source code for my program:
import vtk.*;

public class VTKMPITester {
  private vtkMPIController controller;
  private vtkMPICommunicator worldComm;
  private vtkMPIGroup groupOfNodes;
	
  static
    {
    System.loadLibrary("vtkCommonJava");
    System.loadLibrary("vtkFilteringJava");
    System.loadLibrary("vtkIOJava");
    System.loadLibrary("vtkImagingJava");
    System.loadLibrary("vtkGraphicsJava");
    System.loadLibrary("vtkRenderingJava");
    System.loadLibrary("vtkParallelJava");		
    }

  public VTKMPITester(String args[])
    {
    controller = new vtkMPIController();
//    controller.Initialize(args.length, args);
    worldComm = new vtkMPICommunicator();
    worldComm = worldComm.GetWorldCommunicator();
    controller.SetCommunicator(worldComm);
	
    groupOfNodes = new vtkMPIGroup();
    groupOfNodes.Initialize(controller);

    System.out.println("Hello from: " + controller.GetLocalProcessId());
    System.out.println("Number of Processes: " +
controller.GetNumberOfProcesses());
		
    controller.Finalize();
    }


  public static void main(String args[])
    {
    VTKMPITester tester;
    tester = new VTKMPITester(args);
    }
  }

If I was writing this out in C, I would have expected to make a
controller->Initialize(&argc, &argv) statement before getting the
WorldCommunicator. Is there something else I need to call to perform
the initalization? I tried looking through the Java vtkMPI wrappers
and didn't see anything.

In case it matters, I am doing this on a 32 bit Fedora Core 3 system
with the 1.2.6 version of MPICH and 1.4.2 version of Java.

Jeremy Stout



More information about the vtkusers mailing list