Hi
I have not been able to find, nor have I successfully managed to
create ,a simple example that uses MPI and scalapack together (on 64
bit Opteron system using PGI6.2).
What I have is an MPI code which needs to call scalapack for the
linear algebra part. So I set the world communicator with the usual mpi
calls. Then I split the world communicator into separate
communicators, one of which i want to use for blacs/scalapack and the
other is to be used in MPI
routines at the same time. IS there a working example of this available?.
I have tried
CALL MPI_Init(mpiierr)
CALL MPI_COMM_RANK(MPI_COMM_WORLD,myid,mpiierr) !get processor id
CALL MPI_COMM_SIZE( MPI_COMM_WORLD, numprocs, mpiierr )
ALLOCATE(group_no(numprocs))
group_no(myid)=1
if(myid .lt. numprocs/no_groups)group_no(myid) = 0
CALL MPI_Comm_split(MPI_COMM_WORLD,group_no(myid),myid,new_comm,mpiierr)
CALL BLACS_GET(new_comm,10, ICTXT )
print *,'in blacs section,myid=',myid
CALL BLACS_GRIDINIT(ICTXT, 'Row', NPROW, NPCOL)
CALL BLACS_GRIDINFO( ICTXT, NPROW, NPCOL, MYROW, MYCOL )
snip....
but the print statment will never get executed (It appears that
the call to BLACS_GET terminates the program without any error messages.
Should this work? Or am I off on the wrong tangent?
Could there be a 32/64 bit pointer issue?
Thanks in advance
Holger
|