LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Zhenxia Zhang (majorzzx_at_[hidden])
Date: 2006-04-12 04:08:47


Hi,

I am a newbie and want to use LAM-MPI to checkpoint/restart my MPI application.
I have installed blcr-0.4.2 and lam-7.1.2, but entouner some problems.
My environment is RedHat 9 with kernel 2.4.20-8. LAM-MPI and blcr is installed in /home/cesc53/local.

1. I compile application with
    $ mpicc hello_mpi.c -L/home/cesc53/local/lib -lcr -o hello_mpi
    The error information is :
    /home/cesc53/local/lib/libmpi.a(malloc.o)(.text+0x30e9): In function `ptmalloc_init':
    : undefined reference to `pthread_atfork'
    collect2: ld returned 1 exit status

2. Then I complie with
    $ mpicc hello_mpi.c -o hello_mpi
    That is OK.
    I run application with
    $ mpirun -ssi rpi crtcp C ./hello_mpi
    It seems that the commad has syntax error. Following is displayed:
    -----------------------------------------------------------------------------
Synopsis: mpirun [options] <app>
                mpirun [options] <where> <program> [<prog args>]

Description: Start an MPI application in LAM/MPI.

Notes:
                [options] Zero or more of the options listed below.
                <app> LAM/MPI appschema.
                <where> List of LAM nodes and/or CPUs (examples
                                below).
                <program> Must be a LAM/MPI program that either
                                invokes MPI_INIT or has exactly one of
                                its children invoke MPI_INIT.
                <prog args> Optional list of command line arguments
                                to <program>.
    ..........................
    .........................
-----------------------------------------------------------------------------------------
Could you tell me what I have done wrong? And how to checkpoint a MPI application using LAM-MPI
with blcr?Thanks.

Regards,
Zhenxia Zhang

-----------------------------------------------------------------------------------------
laminfo:
             LAM/MPI: 7.1.2
              Prefix: /home/cesc53/local
        Architecture: i686-pc-linux-gnu
       Configured by: cesc53
       Configured on: Wed Apr 12 14:00:36 CST 2006
      Configure host: CESC53
      Memory manager: ptmalloc2
          C bindings: yes
        C++ bindings: yes
    Fortran bindings: no
          C compiler: gcc
        C++ compiler: g++
    Fortran compiler: false
     Fortran symbols: none
         C profiling: yes
       C++ profiling: yes
   Fortran profiling: no
      C++ exceptions: no
      Thread support: yes
       ROMIO support: yes
        IMPI support: no
       Debug support: no
        Purify clean: no
            SSI boot: globus (API v1.1, Module v0.6)
            SSI boot: rsh (API v1.1, Module v1.1)
            SSI boot: slurm (API v1.1, Module v1.0)
            SSI coll: lam_basic (API v1.1, Module v7.1)
            SSI coll: shmem (API v1.1, Module v1.0)
            SSI coll: smp (API v1.1, Module v1.2)
             SSI rpi: crtcp (API v1.1, Module v1.1)
             SSI rpi: lamd (API v1.0, Module v7.1)
             SSI rpi: sysv (API v1.0, Module v7.1)
             SSI rpi: tcp (API v1.0, Module v7.1)
             SSI rpi: usysv (API v1.0, Module v7.1)
              SSI cr: blcr (API v1.0, Module v1.1)
              SSI cr: self (API v1.0, Module v1.0)
----------------------------------------------------------------------------------------
Code:
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <mpi.h>

int main(int argc, char * argv[])
{
  int rank,size,i,provided;
  char name[512];
  int namelen;

  MPI_Init(&argc, &argv);
  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  MPI_Comm_size(MPI_COMM_WORLD, &size);
  MPI_Get_processor_name(name, &namelen);

  for (i=0; i<100; i++) {
    printf ("Hello! 100 -- %d. I am %d of %d on %s.\n", i, rank, size, name);
    sleep(1);
  }
  MPI_Finalize();

  return 0;
}