Blame examples/developers/mpiexectest.c

Packit 0848f5
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
Packit 0848f5
/*
Packit 0848f5
 *  (C) 2001 by Argonne National Laboratory.
Packit 0848f5
 *      See COPYRIGHT in top-level directory.
Packit 0848f5
 */
Packit 0848f5
Packit 0848f5
/* simple test for multiple executables */
Packit 0848f5
#include "mpi.h"
Packit 0848f5
#include <stdio.h>
Packit 0848f5
#ifdef HAVE_WINDOWS_H
Packit 0848f5
#include <direct.h>
Packit 0848f5
#else
Packit 0848f5
#include <unistd.h>
Packit 0848f5
#endif
Packit 0848f5
#include <stdlib.h>
Packit 0848f5
Packit 0848f5
#define MAX_DIRNAME_SIZE 256 
Packit 0848f5
Packit 0848f5
int main( int argc, char *argv[], char *envp[] )
Packit 0848f5
{
Packit 0848f5
    int  i, myid, numprocs;
Packit 0848f5
    int  namelen;
Packit 0848f5
    char *p;
Packit 0848f5
    char processor_name[MPI_MAX_PROCESSOR_NAME];
Packit 0848f5
    char curr_wd[MAX_DIRNAME_SIZE];
Packit 0848f5
Packit 0848f5
    MPI_Init( &argc, &argv );
Packit 0848f5
    MPI_Comm_size( MPI_COMM_WORLD, &numprocs );
Packit 0848f5
    MPI_Comm_rank( MPI_COMM_WORLD, &myid );
Packit 0848f5
    MPI_Get_processor_name( processor_name, &namelen );
Packit 0848f5
Packit 0848f5
    fprintf( stdout, "[%d] Process %d of %d (%s) is on %s\n",
Packit 0848f5
	     myid, myid, numprocs, argv[0], processor_name );
Packit 0848f5
    fflush( stdout );
Packit 0848f5
Packit 0848f5
    for ( i = 1; i < argc; i++ ) {
Packit 0848f5
	fprintf( stdout, "[%d] argv[%d]=\"%s\"\n", myid, i, argv[i] ); 
Packit 0848f5
	fflush( stdout );
Packit 0848f5
    }
Packit 0848f5
Packit 0848f5
    getcwd( curr_wd, MAX_DIRNAME_SIZE ); 
Packit 0848f5
    fprintf( stdout, "[%d] current working directory=%s\n", myid, curr_wd );
Packit 0848f5
Packit 0848f5
    p = getenv("PATH");
Packit 0848f5
    if ( p )
Packit 0848f5
	fprintf( stdout, "[%d] PATH=%s\n", myid, p );
Packit 0848f5
    else
Packit 0848f5
	fprintf( stdout, "[%d] PATH not set in environment\n", myid );
Packit 0848f5
Packit 0848f5
#ifdef PRINTENV
Packit 0848f5
    /* may produce lots of output, but here if you need it */
Packit 0848f5
    for ( i = 0; envp[i]; i++ )
Packit 0848f5
	fprintf( stdout, "[%d] envp[%d]=%s\n", myid, i, envp[i] );
Packit 0848f5
#endif
Packit 0848f5
Packit 0848f5
    MPI_Finalize( );
Packit 0848f5
}