Give ior a more reasonable plugin system.
parent
87d8bc19fb
commit
ca832bb46e
50
configure.ac
50
configure.ac
|
@ -2,7 +2,7 @@
|
|||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ([2.67])
|
||||
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
|
||||
AC_INIT()
|
||||
AC_CONFIG_AUX_DIR([config])
|
||||
AC_CONFIG_SRCDIR([src/IOR.c])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
@ -28,6 +28,54 @@ AC_TYPE_SIZE_T
|
|||
AC_FUNC_MALLOC
|
||||
AC_CHECK_FUNCS([getpagesize gettimeofday memset mkdir pow putenv realpath regcomp sqrt strcasecmp strchr strerror strncasecmp strstr uname])
|
||||
|
||||
# Check for system capabilities
|
||||
AC_SYS_LARGEFILE
|
||||
|
||||
# POSIX IO support
|
||||
AC_ARG_WITH([posix],
|
||||
[AS_HELP_STRING([--with-posix],
|
||||
[support IO with POSIX backend @<:@default=yes@:>@])],
|
||||
[],
|
||||
[with_posix=yes])
|
||||
AM_CONDITIONAL([USE_POSIX_AIORI], [test x$with_posix = xyes])
|
||||
AM_COND_IF([USE_POSIX_AIORI],[
|
||||
AC_DEFINE([USE_POSIX_AIORI], [], [Build POSIX backend AIORI])
|
||||
])
|
||||
|
||||
# MPIIO support
|
||||
AC_ARG_WITH([mpiio],
|
||||
[AS_HELP_STRING([--with-mpiio],
|
||||
[support IO with MPI-IO backend @<:@default=yes@:>@])],
|
||||
[],
|
||||
[with_mpiio=yes])
|
||||
AM_CONDITIONAL([USE_MPIIO_AIORI], [test x$with_mpiio = xyes])
|
||||
AM_COND_IF([USE_MPIIO_AIORI],[
|
||||
AC_DEFINE([USE_MPIIO_AIORI], [], [Build MPIIO backend AIORI])
|
||||
])
|
||||
|
||||
# HDF5 support
|
||||
AC_ARG_WITH([hdf5],
|
||||
[AS_HELP_STRING([--with-hdf5],
|
||||
[support IO with HDF5 backend @<:@default=no@:>@])],
|
||||
[],
|
||||
[with_hdf5=no])
|
||||
AM_CONDITIONAL([USE_HDF5_AIORI], [test x$with_hdf5 = xyes])
|
||||
AM_COND_IF([USE_HDF5_AIORI],[
|
||||
AC_DEFINE([USE_HDF5_AIORI], [], [Build HDF5 backend AIORI])
|
||||
])
|
||||
|
||||
# NCMPI (Parallel netcdf) support
|
||||
AC_ARG_WITH([ncmpi],
|
||||
[AS_HELP_STRING([--with-ncmpi],
|
||||
[support IO with NCMPI backend @<:@default=no@:>@])],
|
||||
[],
|
||||
[with_ncmpi=no])
|
||||
AM_CONDITIONAL([USE_NCMPI_AIORI], [test x$with_ncmpi = xyes])
|
||||
AM_COND_IF([USE_NCMPI_AIORI],[
|
||||
AC_DEFINE([USE_NCMPI_AIORI], [], [Build NCMPI backend AIORI])
|
||||
])
|
||||
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
src/Makefile
|
||||
src/cbif/Makefile])
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
/******************************************************************************\
|
||||
* *
|
||||
* Copyright (c) 2003, The Regents of the University of California *
|
||||
* See the file COPYRIGHT for a complete copyright notice and license. *
|
||||
* *
|
||||
********************************************************************************
|
||||
*
|
||||
* Abstract prototypes
|
||||
*
|
||||
\******************************************************************************/
|
||||
|
||||
#ifndef _IOR_AIORI_H
|
||||
#define _IOR_AIORI_H
|
||||
|
||||
#include "IOR.h"
|
||||
|
||||
|
||||
/**************************** P R O T O T Y P E S *****************************/
|
||||
|
||||
/* abstract IOR interfaces used in aiori-*.c */
|
||||
void * (*IOR_Create) (char *, IOR_param_t *);
|
||||
void * (*IOR_Open) (char *, IOR_param_t *);
|
||||
IOR_offset_t (*IOR_Xfer) (int, void *, IOR_size_t *,
|
||||
IOR_offset_t, IOR_param_t *);
|
||||
void (*IOR_Close) (void *, IOR_param_t *);
|
||||
void (*IOR_Delete) (char *, IOR_param_t *);
|
||||
void (*IOR_SetVersion) (IOR_param_t *);
|
||||
void (*IOR_Fsync) (void *, IOR_param_t *);
|
||||
IOR_offset_t (*IOR_GetFileSize) (IOR_param_t *, MPI_Comm, char *);
|
||||
|
||||
#endif /* not _IOR_AIORI_H */
|
135
src/IOR.c
135
src/IOR.c
|
@ -8,8 +8,6 @@
|
|||
#include "aiori.h" /* IOR I/O interfaces */
|
||||
#include "IOR.h" /* IOR definitions
|
||||
and prototypes */
|
||||
#include "IOR-aiori.h" /* IOR abstract
|
||||
interfaces */
|
||||
#include <ctype.h> /* tolower() */
|
||||
#include <errno.h> /* sys_errlist */
|
||||
#include <math.h>
|
||||
|
@ -40,6 +38,37 @@ double wall_clock_delta = 0;
|
|||
double wall_clock_deviation;
|
||||
MPI_Comm testComm;
|
||||
|
||||
ior_aiori_t *backend;
|
||||
|
||||
#ifdef USE_POSIX_AIORI
|
||||
extern ior_aiori_t posix_aiori;
|
||||
#endif
|
||||
#ifdef USE_MPIIO_AIORI
|
||||
extern ior_aiori_t mpiio_aiori;
|
||||
#endif
|
||||
#ifdef USE_HDF5_AIORI
|
||||
extern ior_aiori_t hdf5_aiori;
|
||||
#endif
|
||||
#ifdef USE_NCMPI_AIORI
|
||||
extern ior_aiori_t ncmpi_aiori;
|
||||
#endif
|
||||
|
||||
ior_aiori_t *available_aiori[] = {
|
||||
#ifdef USE_POSIX_AIORI
|
||||
&posix_aiori,
|
||||
#endif
|
||||
#ifdef USE_MPIIO_AIORI
|
||||
&mpiio_aiori,
|
||||
#endif
|
||||
#ifdef USE_HDF5_AIORI
|
||||
&hdf5_aiori,
|
||||
#endif
|
||||
#ifdef USE_NCMPI_AIORI
|
||||
&ncmpi_aiori,
|
||||
#endif
|
||||
NULL
|
||||
};
|
||||
|
||||
/********************************** M A I N ***********************************/
|
||||
|
||||
int
|
||||
|
@ -109,51 +138,27 @@ main(int argc,
|
|||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
* Bind abstract I/O function pointers to API-specific functions.
|
||||
* Bind the global "backend" pointer to the requested backend AIORI's
|
||||
* function table.
|
||||
*/
|
||||
|
||||
void
|
||||
AioriBind(char * api)
|
||||
{
|
||||
if (strcmp(api, "POSIX") == 0) {
|
||||
IOR_Create = IOR_Create_POSIX;
|
||||
IOR_Open = IOR_Open_POSIX;
|
||||
IOR_Xfer = IOR_Xfer_POSIX;
|
||||
IOR_Close = IOR_Close_POSIX;
|
||||
IOR_Delete = IOR_Delete_POSIX;
|
||||
IOR_SetVersion = IOR_SetVersion_POSIX;
|
||||
IOR_Fsync = IOR_Fsync_POSIX;
|
||||
IOR_GetFileSize = IOR_GetFileSize_POSIX;
|
||||
} else if (strcmp(api, "MPIIO") == 0) {
|
||||
IOR_Create = IOR_Create_MPIIO;
|
||||
IOR_Open = IOR_Open_MPIIO;
|
||||
IOR_Xfer = IOR_Xfer_MPIIO;
|
||||
IOR_Close = IOR_Close_MPIIO;
|
||||
IOR_Delete = IOR_Delete_MPIIO;
|
||||
IOR_SetVersion = IOR_SetVersion_MPIIO;
|
||||
IOR_Fsync = IOR_Fsync_MPIIO;
|
||||
IOR_GetFileSize = IOR_GetFileSize_MPIIO;
|
||||
} else if (strcmp(api, "HDF5") == 0) {
|
||||
IOR_Create = IOR_Create_HDF5;
|
||||
IOR_Open = IOR_Open_HDF5;
|
||||
IOR_Xfer = IOR_Xfer_HDF5;
|
||||
IOR_Close = IOR_Close_HDF5;
|
||||
IOR_Delete = IOR_Delete_HDF5;
|
||||
IOR_SetVersion = IOR_SetVersion_HDF5;
|
||||
IOR_Fsync = IOR_Fsync_HDF5;
|
||||
IOR_GetFileSize = IOR_GetFileSize_HDF5;
|
||||
} else if (strcmp(api, "NCMPI") == 0) {
|
||||
IOR_Create = IOR_Create_NCMPI;
|
||||
IOR_Open = IOR_Open_NCMPI;
|
||||
IOR_Xfer = IOR_Xfer_NCMPI;
|
||||
IOR_Close = IOR_Close_NCMPI;
|
||||
IOR_Delete = IOR_Delete_NCMPI;
|
||||
IOR_SetVersion = IOR_SetVersion_NCMPI;
|
||||
IOR_Fsync = IOR_Fsync_NCMPI;
|
||||
IOR_GetFileSize = IOR_GetFileSize_NCMPI;
|
||||
} else {
|
||||
WARN("unrecognized IO API");
|
||||
ior_aiori_t **tmp;
|
||||
|
||||
backend = NULL;
|
||||
for (tmp = available_aiori; *tmp != NULL; tmp++) {
|
||||
if (strcmp(api, (*tmp)->name) == 0) {
|
||||
backend = *tmp;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (backend == NULL) {
|
||||
ERR("unrecognized IO API");
|
||||
}
|
||||
|
||||
} /* AioriBind() */
|
||||
|
||||
|
||||
|
@ -1130,7 +1135,7 @@ ReadCheck(void *fd,
|
|||
IOR_offset_t segmentSize, segmentNum;
|
||||
|
||||
memset(buffer, 'a', transfer);
|
||||
*amtXferred = IOR_Xfer(access, fd, buffer, transfer, test);
|
||||
*amtXferred = backend->xfer(access, fd, buffer, transfer, test);
|
||||
tmpOffset = test->offset;
|
||||
if (test->filePerProc == FALSE) {
|
||||
/* offset changes for shared file, not for file-per-proc */
|
||||
|
@ -1159,10 +1164,10 @@ ReadCheck(void *fd,
|
|||
#endif /* USE_UNDOC_OPT - corruptFile */
|
||||
MPI_CHECK(MPI_Barrier(testComm), "barrier error");
|
||||
if (test->filePerProc) {
|
||||
*amtXferred = IOR_Xfer(access, test->fd_fppReadCheck,
|
||||
*amtXferred = backend->xfer(access, test->fd_fppReadCheck,
|
||||
checkBuffer, transfer, test);
|
||||
} else {
|
||||
*amtXferred = IOR_Xfer(access, fd, checkBuffer, transfer, test);
|
||||
*amtXferred = backend->xfer(access, fd, checkBuffer, transfer, test);
|
||||
}
|
||||
test->offset = tmpOffset;
|
||||
if (*amtXferred != transfer)
|
||||
|
@ -1312,7 +1317,7 @@ RemoveFile(char * testFileName,
|
|||
}
|
||||
if (access(testFileName, F_OK) == 0)
|
||||
{
|
||||
IOR_Delete(testFileName, test);
|
||||
backend->delete(testFileName, test);
|
||||
}
|
||||
if (test->reorderTasksRandom == TRUE)
|
||||
{
|
||||
|
@ -1321,7 +1326,7 @@ RemoveFile(char * testFileName,
|
|||
}
|
||||
} else {
|
||||
if ((rank == 0) && (access(testFileName, F_OK) == 0)) {
|
||||
IOR_Delete(testFileName, test);
|
||||
backend->delete(testFileName, test);
|
||||
}
|
||||
}
|
||||
} /* RemoveFile() */
|
||||
|
@ -1941,7 +1946,7 @@ TestIoSys(IOR_param_t *test)
|
|||
MPI_CHECK(MPI_Barrier(testComm), "barrier error");
|
||||
test->open = WRITE;
|
||||
timer[0][rep] = GetTimeStamp();
|
||||
fd = IOR_Create(testFileName, test);
|
||||
fd = backend->create(testFileName, test);
|
||||
timer[1][rep] = GetTimeStamp();
|
||||
if (test->intraTestBarriers)
|
||||
MPI_CHECK(MPI_Barrier(testComm), "barrier error");
|
||||
|
@ -1955,7 +1960,7 @@ TestIoSys(IOR_param_t *test)
|
|||
if (test->intraTestBarriers)
|
||||
MPI_CHECK(MPI_Barrier(testComm), "barrier error");
|
||||
timer[4][rep] = GetTimeStamp();
|
||||
IOR_Close(fd, test);
|
||||
backend->close(fd, test);
|
||||
|
||||
#if USE_UNDOC_OPT /* includeDeleteTime */
|
||||
if (test->includeDeleteTime) {
|
||||
|
@ -1981,7 +1986,7 @@ TestIoSys(IOR_param_t *test)
|
|||
|
||||
/* get the size of the file just written */
|
||||
test->aggFileSizeFromStat[rep]
|
||||
= IOR_GetFileSize(test, testComm, testFileName);
|
||||
= backend->get_file_size(test, testComm, testFileName);
|
||||
|
||||
/* check if stat() of file doesn't equal expected file size,
|
||||
use actual amount of byte moved */
|
||||
|
@ -2027,9 +2032,9 @@ TestIoSys(IOR_param_t *test)
|
|||
}
|
||||
GetTestFileName(testFileName, test);
|
||||
test->open = WRITECHECK;
|
||||
fd = IOR_Open(testFileName, test);
|
||||
fd = backend->open(testFileName, test);
|
||||
dataMoved = WriteOrRead(test, fd, WRITECHECK);
|
||||
IOR_Close(fd, test);
|
||||
backend->close(fd, test);
|
||||
rankOffset = 0;
|
||||
}
|
||||
/*
|
||||
|
@ -2098,7 +2103,7 @@ TestIoSys(IOR_param_t *test)
|
|||
MPI_CHECK(MPI_Barrier(testComm), "barrier error");
|
||||
test->open = READ;
|
||||
timer[6][rep] = GetTimeStamp();
|
||||
fd = IOR_Open(testFileName, test);
|
||||
fd = backend->open(testFileName, test);
|
||||
if (rank == 0 && verbose >= VERBOSE_2) {
|
||||
fprintf(stdout, "[RANK %03d] open for reading file %s XXCEL\n", rank,testFileName);
|
||||
}
|
||||
|
@ -2115,12 +2120,12 @@ TestIoSys(IOR_param_t *test)
|
|||
if (test->intraTestBarriers)
|
||||
MPI_CHECK(MPI_Barrier(testComm), "barrier error");
|
||||
timer[10][rep] = GetTimeStamp();
|
||||
IOR_Close(fd, test);
|
||||
backend->close(fd, test);
|
||||
timer[11][rep] = GetTimeStamp();
|
||||
|
||||
/* get the size of the file just read */
|
||||
test->aggFileSizeFromStat[rep] = IOR_GetFileSize(test, testComm,
|
||||
testFileName);
|
||||
test->aggFileSizeFromStat[rep] = backend->get_file_size(
|
||||
test, testComm, testFileName);
|
||||
|
||||
/* check if stat() of file doesn't equal expected file size,
|
||||
use actual amount of byte moved */
|
||||
|
@ -2153,7 +2158,7 @@ TestIoSys(IOR_param_t *test)
|
|||
GetTestFileName(testFileName, test);
|
||||
MPI_CHECK(MPI_Barrier(testComm), "barrier error");
|
||||
test->open = READCHECK;
|
||||
fd = IOR_Open(testFileName, test);
|
||||
fd = backend->open(testFileName, test);
|
||||
if (test->filePerProc) {
|
||||
int tmpRankOffset;
|
||||
tmpRankOffset = rankOffset;
|
||||
|
@ -2165,17 +2170,17 @@ TestIoSys(IOR_param_t *test)
|
|||
GetTestFileName(test->testFileName_fppReadCheck, test);
|
||||
rankOffset = tmpRankOffset;
|
||||
test->fd_fppReadCheck =
|
||||
IOR_Open(test->testFileName_fppReadCheck, test);
|
||||
backend->open(test->testFileName_fppReadCheck, test);
|
||||
}
|
||||
dataMoved = WriteOrRead(test, fd, READCHECK);
|
||||
if (test->filePerProc) {
|
||||
IOR_Close(test->fd_fppReadCheck, test);
|
||||
backend->close(test->fd_fppReadCheck, test);
|
||||
test->fd_fppReadCheck = NULL;
|
||||
}
|
||||
IOR_Close(fd, test);
|
||||
backend->close(fd, test);
|
||||
}
|
||||
/*
|
||||
* this final barrier may not be necessary as IOR_Close should
|
||||
* this final barrier may not be necessary as backend->close should
|
||||
* be a collective call -- but to make sure that the file has
|
||||
* has not be removed by a task before another finishes writing,
|
||||
* the MPI_Barrier() call has been included.
|
||||
|
@ -2256,7 +2261,7 @@ ValidTests(IOR_param_t * test)
|
|||
/* get the version of the tests */
|
||||
|
||||
AioriBind(test->api);
|
||||
IOR_SetVersion(test);
|
||||
backend->set_version(test);
|
||||
|
||||
if (test->repetitions <= 0)
|
||||
WARN_RESET("too few test repetitions", repetitions);
|
||||
|
@ -2545,14 +2550,14 @@ WriteOrRead(IOR_param_t * test,
|
|||
}
|
||||
transfer = test->transferSize;
|
||||
if (access == WRITE) {
|
||||
amtXferred = IOR_Xfer(access, fd, buffer, transfer, test);
|
||||
amtXferred = backend->xfer(access, fd, buffer, transfer, test);
|
||||
if (amtXferred != transfer) ERR("cannot write to file");
|
||||
} else if (access == READ) {
|
||||
amtXferred = IOR_Xfer(access, fd, buffer, transfer, test);
|
||||
amtXferred = backend->xfer(access, fd, buffer, transfer, test);
|
||||
if (amtXferred != transfer) ERR("cannot read from file");
|
||||
} else if (access == WRITECHECK) {
|
||||
memset(checkBuffer, 'a', transfer);
|
||||
amtXferred = IOR_Xfer(access, fd, checkBuffer, transfer, test);
|
||||
amtXferred = backend->xfer(access, fd, checkBuffer, transfer, test);
|
||||
if (amtXferred != transfer)
|
||||
ERR("cannot read from file write check");
|
||||
transferCount++;
|
||||
|
@ -2576,7 +2581,7 @@ WriteOrRead(IOR_param_t * test,
|
|||
FreeBuffers(access, checkBuffer, readCheckBuffer, buffer, offsetArray);
|
||||
|
||||
if (access == WRITE && test->fsync == TRUE) {
|
||||
IOR_Fsync(fd, test); /*fsync after all accesses*/
|
||||
backend->fsync(fd, test); /*fsync after all accesses*/
|
||||
}
|
||||
return(dataMoved);
|
||||
} /* WriteOrRead() */
|
||||
|
|
|
@ -8,10 +8,13 @@
|
|||
#ifndef _IOR_H
|
||||
#define _IOR_H
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include "aiori.h" /* abstract IOR interfaces */
|
||||
#include "iordef.h" /* IOR Definitions */
|
||||
|
||||
|
||||
/*************************** D E F I N I T I O N S ****************************/
|
||||
|
||||
/* define the queuing structure for the test parameters */
|
||||
|
@ -46,8 +49,6 @@ void GetPlatformName (char *);
|
|||
void GetTestFileName (char *, IOR_param_t *);
|
||||
double GetTimeStamp (void);
|
||||
char * HumanReadable (IOR_offset_t, int);
|
||||
IOR_offset_t IOR_GetFileSize_POSIX (IOR_param_t *, MPI_Comm, char *);
|
||||
IOR_offset_t IOR_GetFileSize_MPIIO (IOR_param_t *, MPI_Comm, char *);
|
||||
char * LowerCase (char *);
|
||||
void OutputToRoot (int, MPI_Comm, char *);
|
||||
void PPDouble (int, double, char *);
|
||||
|
|
|
@ -2,9 +2,21 @@ SUBDIRS = cbif
|
|||
|
||||
bin_PROGRAMS = ior
|
||||
|
||||
# N.B. "NCMPI" is an outdated name for pnetcdf (parallel netcdf)
|
||||
ior_SOURCES = IOR.c utilities.c parse_options.c \
|
||||
IOR.h aiori.h iordef.h defaults.h IOR-aiori.h \
|
||||
aiori-POSIX.c aiori-noMPIIO.c aiori-noHDF5.c aiori-noNCMPI.c
|
||||
ior_CFLAGS =
|
||||
ior_SOURCES = IOR.c utilities.c parse_options.c
|
||||
ior_SOURCES += IOR.h aiori.h iordef.h defaults.h
|
||||
ior_LDADD = -lm
|
||||
|
||||
if USE_POSIX_AIORI
|
||||
ior_SOURCES += aiori-POSIX.c
|
||||
endif
|
||||
if USE_MPIIO_AIORI
|
||||
ior_SOURCES += aiori-MPIIO.c
|
||||
endif
|
||||
if USE_HDF5_AIORI
|
||||
ior_SOURCES += aiori-HDF5.c
|
||||
ior_LDADD += -lhdf5 -lz
|
||||
endif
|
||||
if USE_NCMPI_AIORI
|
||||
ior_SOURCES += aiori-NCMPI.c
|
||||
ior_LDADD += -lpnetcdf
|
||||
endif
|
||||
|
|
|
@ -74,16 +74,36 @@ void SetHints (MPI_Info *, char *);
|
|||
void SetupDataSet_HDF5(void *, IOR_param_t *);
|
||||
void ShowHints (MPI_Info *);
|
||||
|
||||
void * IOR_Create_HDF5 (char *, IOR_param_t *);
|
||||
void * IOR_Open_HDF5 (char *, IOR_param_t *);
|
||||
IOR_offset_t IOR_Xfer_HDF5 (int, void *, IOR_size_t *,
|
||||
IOR_offset_t, IOR_param_t *);
|
||||
void IOR_Close_HDF5 (void *, IOR_param_t *);
|
||||
void IOR_Delete_HDF5 (char *, IOR_param_t *);
|
||||
void IOR_SetVersion_HDF5 (IOR_param_t *);
|
||||
void IOR_Fsync_HDF5 (void *, IOR_param_t *);
|
||||
IOR_offset_t IOR_GetFileSize_HDF5 (IOR_param_t *, MPI_Comm, char *);
|
||||
|
||||
/************************** D E C L A R A T I O N S ***************************/
|
||||
|
||||
ior_aiori_t hdf5_aiori = {
|
||||
"HDF5",
|
||||
IOR_Create_HDF5,
|
||||
IOR_Open_HDF5,
|
||||
IOR_Xfer_HDF5,
|
||||
IOR_Close_HDF5,
|
||||
IOR_Delete_HDF5,
|
||||
IOR_SetVersion_HDF5,
|
||||
IOR_Fsync_HDF5,
|
||||
IOR_GetFileSize_HDF5
|
||||
};
|
||||
|
||||
extern int errno, /* error number */
|
||||
rank,
|
||||
rankOffset,
|
||||
verbose; /* verbose output */
|
||||
extern MPI_Comm testComm;
|
||||
|
||||
|
||||
static hid_t xferPropList; /* xfer property list */
|
||||
hid_t dataSet; /* data set id */
|
||||
hid_t dataSpace; /* data space id */
|
||||
|
|
|
@ -28,6 +28,16 @@ static IOR_offset_t SeekOffset_MPIIO (MPI_File, IOR_offset_t,
|
|||
void SetHints (MPI_Info *, char *);
|
||||
void ShowHints (MPI_Info *);
|
||||
|
||||
void * IOR_Create_MPIIO (char *, IOR_param_t *);
|
||||
void * IOR_Open_MPIIO (char *, IOR_param_t *);
|
||||
IOR_offset_t IOR_Xfer_MPIIO (int, void *, IOR_size_t *,
|
||||
IOR_offset_t, IOR_param_t *);
|
||||
void IOR_Close_MPIIO (void *, IOR_param_t *);
|
||||
void IOR_Delete_MPIIO (char *, IOR_param_t *);
|
||||
void IOR_SetVersion_MPIIO (IOR_param_t *);
|
||||
void IOR_Fsync_MPIIO (void *, IOR_param_t *);
|
||||
IOR_offset_t IOR_GetFileSize_MPIIO (IOR_param_t *, MPI_Comm, char *);
|
||||
|
||||
/************************** D E C L A R A T I O N S ***************************/
|
||||
|
||||
extern int errno;
|
||||
|
@ -36,6 +46,18 @@ extern int rankOffset;
|
|||
extern int verbose;
|
||||
extern MPI_Comm testComm;
|
||||
|
||||
ior_aiori_t mpiio_aiori = {
|
||||
"MPIIO",
|
||||
IOR_Create_MPIIO,
|
||||
IOR_Open_MPIIO,
|
||||
IOR_Xfer_MPIIO,
|
||||
IOR_Close_MPIIO,
|
||||
IOR_Delete_MPIIO,
|
||||
IOR_SetVersion_MPIIO,
|
||||
IOR_Fsync_MPIIO,
|
||||
IOR_GetFileSize_MPIIO
|
||||
};
|
||||
|
||||
/***************************** F U N C T I O N S ******************************/
|
||||
|
||||
/******************************************************************************/
|
||||
|
|
|
@ -42,8 +42,30 @@ int GetFileMode(IOR_param_t *);
|
|||
void SetHints (MPI_Info *, char *);
|
||||
void ShowHints (MPI_Info *);
|
||||
|
||||
void * IOR_Create_NCMPI (char *, IOR_param_t *);
|
||||
void * IOR_Open_NCMPI (char *, IOR_param_t *);
|
||||
IOR_offset_t IOR_Xfer_NCMPI (int, void *, IOR_size_t *,
|
||||
IOR_offset_t, IOR_param_t *);
|
||||
void IOR_Close_NCMPI (void *, IOR_param_t *);
|
||||
void IOR_Delete_NCMPI (char *, IOR_param_t *);
|
||||
void IOR_SetVersion_NCMPI (IOR_param_t *);
|
||||
void IOR_Fsync_NCMPI (void *, IOR_param_t *);
|
||||
IOR_offset_t IOR_GetFileSize_NCMPI (IOR_param_t *, MPI_Comm, char *);
|
||||
|
||||
/************************** D E C L A R A T I O N S ***************************/
|
||||
|
||||
ior_aiori_t ncmpi_aiori = {
|
||||
"NCMPI",
|
||||
IOR_Create_NCMPI,
|
||||
IOR_Open_NCMPI,
|
||||
IOR_Xfer_NCMPI,
|
||||
IOR_Close_NCMPI,
|
||||
IOR_Delete_NCMPI,
|
||||
IOR_SetVersion_NCMPI,
|
||||
IOR_Fsync_NCMPI,
|
||||
IOR_GetFileSize_NCMPI
|
||||
};
|
||||
|
||||
extern int errno, /* error number */
|
||||
numTasksWorld,
|
||||
rank,
|
||||
|
|
|
@ -39,10 +39,30 @@
|
|||
|
||||
|
||||
/**************************** P R O T O T Y P E S *****************************/
|
||||
|
||||
void * IOR_Create_POSIX (char *, IOR_param_t *);
|
||||
void * IOR_Open_POSIX (char *, IOR_param_t *);
|
||||
IOR_offset_t IOR_Xfer_POSIX (int, void *, IOR_size_t *,
|
||||
IOR_offset_t, IOR_param_t *);
|
||||
void IOR_Close_POSIX (void *, IOR_param_t *);
|
||||
void IOR_Delete_POSIX (char *, IOR_param_t *);
|
||||
void IOR_SetVersion_POSIX (IOR_param_t *);
|
||||
void IOR_Fsync_POSIX (void *, IOR_param_t *);
|
||||
IOR_offset_t IOR_GetFileSize_POSIX (IOR_param_t *, MPI_Comm, char *);
|
||||
|
||||
/************************** D E C L A R A T I O N S ***************************/
|
||||
|
||||
ior_aiori_t posix_aiori = {
|
||||
"POSIX",
|
||||
IOR_Create_POSIX,
|
||||
IOR_Open_POSIX,
|
||||
IOR_Xfer_POSIX,
|
||||
IOR_Close_POSIX,
|
||||
IOR_Delete_POSIX,
|
||||
IOR_SetVersion_POSIX,
|
||||
IOR_Fsync_POSIX,
|
||||
IOR_GetFileSize_POSIX
|
||||
};
|
||||
|
||||
extern int errno;
|
||||
extern int rank;
|
||||
extern int rankOffset;
|
||||
|
|
|
@ -1,81 +0,0 @@
|
|||
/******************************************************************************\
|
||||
* *
|
||||
* Copyright (c) 2003, The Regents of the University of California *
|
||||
* See the file COPYRIGHT for a complete copyright notice and license. *
|
||||
* *
|
||||
********************************************************************************
|
||||
*
|
||||
* CVS info:
|
||||
* $RCSfile: aiori-noHDF5.c,v $
|
||||
* $Revision: 1.2 $
|
||||
* $Date: 2008/12/02 17:12:14 $
|
||||
* $Author: rklundt $
|
||||
*
|
||||
* Purpose:
|
||||
* Empty HDF5 functions for when compiling without HDF5 support.
|
||||
*
|
||||
\******************************************************************************/
|
||||
|
||||
#include "aiori.h"
|
||||
|
||||
void *
|
||||
IOR_Create_HDF5(char * testFileName,
|
||||
IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with HDF5 support");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *
|
||||
IOR_Open_HDF5(char * testFileName,
|
||||
IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with HDF5 support");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
IOR_offset_t
|
||||
IOR_Xfer_HDF5(int access,
|
||||
void * fd,
|
||||
IOR_size_t * buffer,
|
||||
IOR_offset_t length,
|
||||
IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with HDF5 support");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
IOR_Fsync_HDF5(void * fd, IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with HDF5 support");
|
||||
}
|
||||
|
||||
void
|
||||
IOR_Close_HDF5(void * fd,
|
||||
IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with HDF5 support");
|
||||
}
|
||||
|
||||
void
|
||||
IOR_Delete_HDF5(char * testFileName, IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with HDF5 support");
|
||||
}
|
||||
|
||||
void
|
||||
IOR_SetVersion_HDF5(IOR_param_t *test)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with HDF5 support");
|
||||
}
|
||||
|
||||
IOR_offset_t
|
||||
IOR_GetFileSize_HDF5(IOR_param_t * test,
|
||||
MPI_Comm testComm,
|
||||
char * testFileName)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with HDF5 support");
|
||||
return 0;
|
||||
}
|
|
@ -1,81 +0,0 @@
|
|||
/******************************************************************************\
|
||||
* *
|
||||
* Copyright (c) 2003, The Regents of the University of California *
|
||||
* See the file COPYRIGHT for a complete copyright notice and license. *
|
||||
* *
|
||||
********************************************************************************
|
||||
*
|
||||
* CVS info:
|
||||
* $RCSfile: aiori-noMPIIO.c,v $
|
||||
* $Revision: 1.1.1.1 $
|
||||
* $Date: 2007/10/15 23:36:54 $
|
||||
* $Author: rklundt $
|
||||
*
|
||||
* Purpose:
|
||||
* Empty MPIIO functions for when compiling without MPIIO support.
|
||||
*
|
||||
\******************************************************************************/
|
||||
|
||||
#include "aiori.h"
|
||||
|
||||
void *
|
||||
IOR_Create_MPIIO(char * testFileName,
|
||||
IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with MPIIO support");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *
|
||||
IOR_Open_MPIIO(char * testFileName,
|
||||
IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with MPIIO support");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
IOR_offset_t
|
||||
IOR_Xfer_MPIIO(int access,
|
||||
void * fd,
|
||||
IOR_size_t * buffer,
|
||||
IOR_offset_t length,
|
||||
IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with MPIIO support");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
IOR_Fsync_MPIIO(void * fd, IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with MPIIO support");
|
||||
}
|
||||
|
||||
void
|
||||
IOR_Close_MPIIO(void * fd,
|
||||
IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with MPIIO support");
|
||||
}
|
||||
|
||||
void
|
||||
IOR_Delete_MPIIO(char * testFileName, IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with MPIIO support");
|
||||
}
|
||||
|
||||
void
|
||||
IOR_SetVersion_MPIIO(IOR_param_t *test)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with MPIIO support");
|
||||
}
|
||||
|
||||
IOR_offset_t
|
||||
IOR_GetFileSize_MPIIO(IOR_param_t * test,
|
||||
MPI_Comm testComm,
|
||||
char * testFileName)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with MPIIO support");
|
||||
return 0;
|
||||
}
|
|
@ -1,81 +0,0 @@
|
|||
/******************************************************************************\
|
||||
* *
|
||||
* Copyright (c) 2003, The Regents of the University of California *
|
||||
* See the file COPYRIGHT for a complete copyright notice and license. *
|
||||
* *
|
||||
********************************************************************************
|
||||
*
|
||||
* CVS info:
|
||||
* $RCSfile: aiori-noNCMPI.c,v $
|
||||
* $Revision: 1.2 $
|
||||
* $Date: 2008/12/02 17:12:14 $
|
||||
* $Author: rklundt $
|
||||
*
|
||||
* Purpose:
|
||||
* Empty NCMPI functions for when compiling without NCMPI support.
|
||||
*
|
||||
\******************************************************************************/
|
||||
|
||||
#include "aiori.h"
|
||||
|
||||
void *
|
||||
IOR_Create_NCMPI(char * testFileName,
|
||||
IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with NCMPI support");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *
|
||||
IOR_Open_NCMPI(char * testFileName,
|
||||
IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with NCMPI support");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
IOR_offset_t
|
||||
IOR_Xfer_NCMPI(int access,
|
||||
void * fd,
|
||||
IOR_size_t * buffer,
|
||||
IOR_offset_t length,
|
||||
IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with NCMPI support");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
IOR_Fsync_NCMPI(void * fd, IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with NCMPI support");
|
||||
}
|
||||
|
||||
void
|
||||
IOR_Close_NCMPI(void * fd,
|
||||
IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with NCMPI support");
|
||||
}
|
||||
|
||||
void
|
||||
IOR_Delete_NCMPI(char * testFileName, IOR_param_t * param)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with NCMPI support");
|
||||
}
|
||||
|
||||
void
|
||||
IOR_SetVersion_NCMPI(IOR_param_t *test)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with NCMPI support");
|
||||
}
|
||||
|
||||
IOR_offset_t
|
||||
IOR_GetFileSize_NCMPI(IOR_param_t * test,
|
||||
MPI_Comm testComm,
|
||||
char * testFileName)
|
||||
{
|
||||
ERR("This copy of IOR was not compiled with NCMPI support");
|
||||
return 0;
|
||||
}
|
56
src/aiori.h
56
src/aiori.h
|
@ -168,49 +168,17 @@ typedef struct
|
|||
|
||||
/**************************** P R O T O T Y P E S *****************************/
|
||||
|
||||
/* functions for aiori-*.c */
|
||||
/* POSIX-specific functions */
|
||||
void * IOR_Create_POSIX (char *, IOR_param_t *);
|
||||
void * IOR_Open_POSIX (char *, IOR_param_t *);
|
||||
IOR_offset_t IOR_Xfer_POSIX (int, void *, IOR_size_t *,
|
||||
IOR_offset_t, IOR_param_t *);
|
||||
void IOR_Close_POSIX (void *, IOR_param_t *);
|
||||
void IOR_Delete_POSIX (char *, IOR_param_t *);
|
||||
void IOR_SetVersion_POSIX (IOR_param_t *);
|
||||
void IOR_Fsync_POSIX (void *, IOR_param_t *);
|
||||
IOR_offset_t IOR_GetFileSize_POSIX (IOR_param_t *, MPI_Comm, char *);
|
||||
|
||||
/* MPIIO-specific functions */
|
||||
void * IOR_Create_MPIIO (char *, IOR_param_t *);
|
||||
void * IOR_Open_MPIIO (char *, IOR_param_t *);
|
||||
IOR_offset_t IOR_Xfer_MPIIO (int, void *, IOR_size_t *,
|
||||
IOR_offset_t, IOR_param_t *);
|
||||
void IOR_Close_MPIIO (void *, IOR_param_t *);
|
||||
void IOR_Delete_MPIIO (char *, IOR_param_t *);
|
||||
void IOR_SetVersion_MPIIO (IOR_param_t *);
|
||||
void IOR_Fsync_MPIIO (void *, IOR_param_t *);
|
||||
IOR_offset_t IOR_GetFileSize_MPIIO (IOR_param_t *, MPI_Comm, char *);
|
||||
|
||||
/* HDF5-specific functions */
|
||||
void * IOR_Create_HDF5 (char *, IOR_param_t *);
|
||||
void * IOR_Open_HDF5 (char *, IOR_param_t *);
|
||||
IOR_offset_t IOR_Xfer_HDF5 (int, void *, IOR_size_t *,
|
||||
IOR_offset_t, IOR_param_t *);
|
||||
void IOR_Close_HDF5 (void *, IOR_param_t *);
|
||||
void IOR_Delete_HDF5 (char *, IOR_param_t *);
|
||||
void IOR_SetVersion_HDF5 (IOR_param_t *);
|
||||
void IOR_Fsync_HDF5 (void *, IOR_param_t *);
|
||||
IOR_offset_t IOR_GetFileSize_HDF5 (IOR_param_t *, MPI_Comm, char *);
|
||||
|
||||
/* NCMPI-specific functions */
|
||||
void * IOR_Create_NCMPI (char *, IOR_param_t *);
|
||||
void * IOR_Open_NCMPI (char *, IOR_param_t *);
|
||||
IOR_offset_t IOR_Xfer_NCMPI (int, void *, IOR_size_t *,
|
||||
IOR_offset_t, IOR_param_t *);
|
||||
void IOR_Close_NCMPI (void *, IOR_param_t *);
|
||||
void IOR_Delete_NCMPI (char *, IOR_param_t *);
|
||||
void IOR_SetVersion_NCMPI (IOR_param_t *);
|
||||
void IOR_Fsync_NCMPI (void *, IOR_param_t *);
|
||||
IOR_offset_t IOR_GetFileSize_NCMPI (IOR_param_t *, MPI_Comm, char *);
|
||||
typedef struct ior_aiori {
|
||||
char *name;
|
||||
void *(*create)(char *, IOR_param_t *);
|
||||
void *(*open)(char *, IOR_param_t *);
|
||||
IOR_offset_t (*xfer)(int, void *, IOR_size_t *,
|
||||
IOR_offset_t, IOR_param_t *);
|
||||
void (*close)(void *, IOR_param_t *);
|
||||
void (*delete)(char *, IOR_param_t *);
|
||||
void (*set_version)(IOR_param_t *);
|
||||
void (*fsync)(void *, IOR_param_t *);
|
||||
IOR_offset_t (*get_file_size)(IOR_param_t *, MPI_Comm, char *);
|
||||
} ior_aiori_t;
|
||||
|
||||
#endif /* not _AIORI_H */
|
||||
|
|
|
@ -1,69 +0,0 @@
|
|||
#/*****************************************************************************\
|
||||
#* *
|
||||
#* Copyright (c) 2003, The Regents of the University of California *
|
||||
#* See the file COPYRIGHT for a complete copyright notice and license. *
|
||||
#* *
|
||||
#*******************************************************************************
|
||||
#*
|
||||
#* CVS info:
|
||||
#* $RCSfile: Makefile,v $
|
||||
#* $Revision: 1.1.1.1 $
|
||||
#* $Date: 2007/10/15 23:36:54 $
|
||||
#* $Author: rklundt $
|
||||
#*
|
||||
#* Purpose:
|
||||
#* Make IOR executable.
|
||||
#*
|
||||
#* gmake posix -- IOR with only POSIX interfaces
|
||||
#* gmake mpiio -- IOR with only POSIX and MPIIO interfaces
|
||||
#* gmake hdf5 -- IOR with POSIX, MPIIO, and HDF5 interfaces
|
||||
#* gmake ncmpi -- IOR with POSIX, MPIIO, and NCMPI interfaces
|
||||
#* gmake all -- IOR with POSIX, MPIIO, HDF5, and NCMPI interfaces
|
||||
#* gmake clean -- remove executable and object files
|
||||
#*
|
||||
#\*****************************************************************************/
|
||||
|
||||
include Makefile.config
|
||||
|
||||
# Requires GNU Make
|
||||
OS=$(shell uname)
|
||||
|
||||
SRCS = IOR.c utilities.c parse_options.c
|
||||
OBJS = $(SRCS:.c=.o)
|
||||
|
||||
posix: $(OBJS) aiori-POSIX.o aiori-noMPIIO.o aiori-noHDF5.o aiori-noNCMPI.o
|
||||
$(CC) -o IOR $(OBJS) \
|
||||
aiori-POSIX.o aiori-noMPIIO.o aiori-noHDF5.o aiori-noNCMPI.o \
|
||||
$(LDFLAGS)
|
||||
|
||||
mpiio: $(OBJS) aiori-POSIX.o aiori-MPIIO.o aiori-noHDF5.o aiori-noNCMPI.o
|
||||
$(CC) -o IOR $(OBJS) \
|
||||
aiori-POSIX.o aiori-MPIIO.o aiori-noHDF5.o aiori-noNCMPI.o \
|
||||
$(LDFLAGS)
|
||||
|
||||
hdf5: $(OBJS) aiori-POSIX.o aiori-MPIIO.o aiori-HDF5.o aiori-noNCMPI.o
|
||||
$(CC) $(LDFLAGS_HDF5) -o IOR $(OBJS) \
|
||||
aiori-POSIX.o aiori-MPIIO.o aiori-HDF5.o aiori-noNCMPI.o
|
||||
|
||||
ncmpi: $(OBJS) aiori-POSIX.o aiori-MPIIO.o aiori-noHDF5.o aiori-NCMPI.o
|
||||
$(CC) $(LDFLAGS_NCMPI) -o IOR $(OBJS) \
|
||||
aiori-POSIX.o aiori-MPIIO.o aiori-noHDF5.o aiori-NCMPI.o
|
||||
|
||||
all: $(OBJS) aiori-POSIX.o aiori-MPIIO.o aiori-HDF5.o aiori-NCMPI.o
|
||||
$(CC) $(LDFLAGS_HDF5) $(LDFLAGS_NCMPI) -o IOR $(OBJS) \
|
||||
aiori-POSIX.o aiori-MPIIO.o aiori-HDF5.o aiori-NCMPI.o
|
||||
|
||||
clean:
|
||||
-rm -f *.o IOR
|
||||
|
||||
aiori-MPIIO.o: aiori-MPIIO.c
|
||||
$(CC) -c aiori-MPIIO.c
|
||||
|
||||
aiori-HDF5.o: aiori-HDF5.c
|
||||
$(CC) $(CCFLAGS_HDF5) -c aiori-HDF5.c
|
||||
|
||||
aiori-NCMPI.o: aiori-NCMPI.c
|
||||
$(CC) $(CCFLAGS_NCMPI) -c aiori-NCMPI.c
|
||||
|
||||
.c.o:
|
||||
$(CC) $(CCFLAGS) -c $<
|
|
@ -1,90 +0,0 @@
|
|||
#/*****************************************************************************\
|
||||
#* *
|
||||
#* Copyright (c) 2003, The Regents of the University of California *
|
||||
#* See the file COPYRIGHT for a complete copyright notice and license. *
|
||||
#* *
|
||||
#*******************************************************************************
|
||||
#*
|
||||
#* CVS info:
|
||||
#* $RCSfile: Makefile.config,v $
|
||||
#* $Revision: 1.3 $
|
||||
#* $Date: 2008/12/02 17:12:14 $
|
||||
#* $Author: rklundt $
|
||||
#*
|
||||
#* Purpose:
|
||||
#* Maintain compilation settings for various platforms.
|
||||
#*
|
||||
#\*****************************************************************************/
|
||||
|
||||
################
|
||||
# AIX SETTINGS #
|
||||
################
|
||||
CC.AIX = mpcc -q64
|
||||
CCFLAGS.AIX = -g -D_LARGE_FILES
|
||||
# -qwarn64 -qinfo=all -D_NO_MPI_TIMER
|
||||
LDFLAGS.AIX = #-bmaxdata:0x80000000
|
||||
HDF5_DIR.AIX = /usr/local/tools/hdf5/hdf5-1.6.5/parallel
|
||||
#NCMPI_DIR.AIX = /usr/local/netcdf/parallel-netcdf-0.9.4_64bit
|
||||
NCMPI_DIR.AIX = /g/g0/$(shell whoami)/LIBS/INSTALLS/parallel-netcdf-1.0.2pre2/aix_5_64_fed
|
||||
|
||||
###################
|
||||
# IRIX64 SETTINGS #
|
||||
###################
|
||||
CC.IRIX64 = /usr/local/mpich-1.2.2/irix-n32/bin/mpicc
|
||||
CCFLAGS.IRIX64 = -g
|
||||
# -D_NO_MPI_TIMER
|
||||
LDFLAGS.IRIX64 =
|
||||
HDF5_DIR.IRIX64 = /usr/local/tools/hdf5/hdf5-1.6.0/parallel
|
||||
NCMPI_DIR.IRIX64 =
|
||||
|
||||
|
||||
##################
|
||||
# LINUX SETTINGS #
|
||||
##################
|
||||
CC.Linux = mpicc
|
||||
CCFLAGS.Linux = -g -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 #-D_MANUALLY_SET_LUSTRE_STRIPING -Wall -pedantic -D_NO_MPI_TIMER
|
||||
#LDFLAGS.Linux = -L/usr/lib/mpi/mpi_gnu/lib -lmpio
|
||||
#LDFLAGS.Linux = -L/usr/lib/mpi/mpi_intel/lib -lmpio
|
||||
LDFLAGS.Linux =
|
||||
#HDF5_DIR.Linux = /usr/local/tools/hdf5/hdf5-1.6.5/parallel
|
||||
#NCMPI_DIR.Linux = /g/g0/$(shell whoami)/LIBS/INSTALLS/parallel-netcdf-1.0.2pre2/chaos_3_x86_elan3
|
||||
|
||||
|
||||
##################
|
||||
# SunOS SETTINGS #
|
||||
##################
|
||||
CC.SunOS = mpicc
|
||||
CCFLAGS.SunOS = -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
|
||||
LDFLAGS.SunOS = -Llib -lmpich
|
||||
HDF5_DIR.SunOS =
|
||||
NCMPI_DIR.SunOS =
|
||||
|
||||
|
||||
################
|
||||
# BGL SETTINGS #
|
||||
################
|
||||
CC.BGL = mpgcc
|
||||
CCFLAGS.BGL = -g -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
|
||||
LDFLAGS.BGL =
|
||||
HDF5_DIR.BGL =
|
||||
NCMPI_DIR.BGL =
|
||||
|
||||
|
||||
#########################
|
||||
# OSF1 (TRU64) SETTINGS #
|
||||
#########################
|
||||
CC.OSF1 = /usr/local/new_mpi/bin/mpicc
|
||||
CCFLAGS.OSF1 = -g -ieee
|
||||
LDFLAGS.OSF1 =
|
||||
HDF5_DIR.OSF1 = /usr/local/hdf5/hdf5-1.4.5/mpich-1.2.4shm/prod/bit64/shared
|
||||
NCMPI_DIR.OSF1 =
|
||||
|
||||
################################################################################
|
||||
|
||||
CC = $(CC.$(OS))
|
||||
CCFLAGS = $(CCFLAGS.$(OS))
|
||||
LDFLAGS = $(LDFLAGS.$(OS)) -lm
|
||||
CCFLAGS_HDF5 = $(CCFLAGS.$(OS)) -I$(HDF5_DIR.$(OS))/include
|
||||
LDFLAGS_HDF5 = $(LDFLAGS.$(OS)) -L$(HDF5_DIR.$(OS))/lib -lhdf5 -lm -lz
|
||||
CCFLAGS_NCMPI = $(CCFLAGS.$(OS)) -I$(NCMPI_DIR.$(OS))/include
|
||||
LDFLAGS_NCMPI = $(LDFLAGS.$(OS)) -L$(NCMPI_DIR.$(OS))/lib -lpnetcdf -lm
|
Loading…
Reference in New Issue