Blame examples/developers/mpiexectest.c

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