mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-30 15:32:37 +08:00
[svn-r4110]
Purpose: feature Description: allows the option of building the library libhdf-inst.a so that it can link with either the Pablo Trace Libraries or with the Pablo Performance Capture Facility (PCF) Solution: Added code for conditional compilation using the PCF_BUILD flag. When the library is made, the user can specify PABLO_BUILD=PCF which will cause the -DPCF_BUILD to be passed to the compiler. Platforms tested: Solaris, IRIX64
This commit is contained in:
parent
d9d71b06e4
commit
5fa81dec82
@ -131,7 +131,7 @@ int HDFtraceFSETPOS( FILE *stream, const fpos_t *position ) ;
|
||||
void HDFtraceREWIND( FILE *stream ) ;
|
||||
ssize_t HDFtraceWRITE( int fd, const void *buf, size_t nbytes );
|
||||
size_t HDFtraceFWRITE( const void *, size_t , size_t , FILE * );
|
||||
int HDFtracePUTS( char *s ) ;
|
||||
int HDFtracePUTS( const char *s ) ;
|
||||
int HDFtraceFPUTC( int c, FILE *stream ) ;
|
||||
int HDFtraceFPUTS( const char *s, FILE *stream ) ;
|
||||
|
||||
@ -293,6 +293,7 @@ void HDFtraceIOEnd ( int, double, char * );
|
||||
|
||||
#include "HDFmpioProtos.h"
|
||||
|
||||
/*
|
||||
#ifdef MPI_File_open
|
||||
#undef MPI_File_open
|
||||
#endif
|
||||
@ -410,10 +411,13 @@ void HDFtraceIOEnd ( int, double, char * );
|
||||
#define MPI_File_set_atomicity HDF_MPI_File_set_atomicity
|
||||
#define MPI_File_get_atomicity HDF_MPI_File_get_atomicity
|
||||
#define MPI_File_sync HDF_MPI_File_sync
|
||||
#endif /* HAVE_PARALLEL */
|
||||
#endif /* HAVE_PARALLEL */
|
||||
#endif
|
||||
*/
|
||||
#endif
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* HAVE_PARALLEL */
|
||||
|
||||
#endif /* HDFIOTRACE conditional */
|
||||
|
@ -1,3 +1,42 @@
|
||||
#ifdef PCF_BUILD
|
||||
#define MPI_File_open PCF_MPI_File_open
|
||||
#define MPI_File_close PCF_MPI_File_close
|
||||
#define MPI_File_set_size PCF_MPI_File_set_size
|
||||
#define MPI_File_get_size PCF_MPI_File_get_size
|
||||
#define MPI_File_set_view PCF_MPI_File_set_view
|
||||
#define MPI_File_get_view PCF_MPI_File_get_view
|
||||
#define MPI_File_read_at PCF_MPI_File_read_at
|
||||
#define MPI_File_read_at_all PCF_MPI_File_read_at_all
|
||||
#define MPI_File_write_at PCF_MPI_File_write_at
|
||||
#define MPI_File_write_at_all PCF_MPI_File_write_at_all
|
||||
#define MPI_File_sync PCF_MPI_File_sync
|
||||
|
||||
int PCF_MPI_File_open( MPI_Comm comm, char *filename, int amode,
|
||||
MPI_Info info, MPI_File *fh );
|
||||
int PCF_MPI_File_close( MPI_File *fh );
|
||||
int PCF_MPI_File_delete( char *filename, MPI_Info info );
|
||||
int PCF_MPI_File_set_size( MPI_File fh, MPI_Offset size );
|
||||
int PCF_MPI_File_get_size( MPI_File fh, MPI_Offset *size );
|
||||
int PCF_MPI_File_set_view( MPI_File fh, MPI_Offset disp, MPI_Datatype etype,
|
||||
MPI_Datatype filetype, char *datarep,
|
||||
MPI_Info info );
|
||||
int PCF_MPI_File_get_view( MPI_File fh, MPI_Offset *disp,
|
||||
MPI_Datatype *etype, MPI_Datatype *filetype,
|
||||
char *datarep );
|
||||
int PCF_MPI_File_read_at( MPI_File fh, MPI_Offset offset, void *buf,
|
||||
int count, MPI_Datatype datatype,
|
||||
MPI_Status *status );
|
||||
int PCF_MPI_File_read_at_all( MPI_File fh, MPI_Offset offset, void *buf,
|
||||
int count, MPI_Datatype datatype,
|
||||
MPI_Status *status );
|
||||
int PCF_MPI_File_write_at( MPI_File fh, MPI_Offset offset, void *buf,
|
||||
int count, MPI_Datatype datatype,
|
||||
MPI_Status *status );
|
||||
int PCF_MPI_File_write_at_all( MPI_File fh, MPI_Offset offset, void *buf,
|
||||
int count, MPI_Datatype datatype,
|
||||
MPI_Status *status );
|
||||
int PCF_MPI_File_sync( MPI_File fh );
|
||||
#else
|
||||
#define MPI_File_open HDF_MPI_File_open
|
||||
#define MPI_File_close HDF_MPI_File_close
|
||||
#define MPI_File_set_size HDF_MPI_File_set_size
|
||||
@ -35,3 +74,4 @@ int HDF_MPI_File_write_at_all( MPI_File fh, MPI_Offset offset, void *buf,
|
||||
int count, MPI_Datatype datatype,
|
||||
MPI_Status *status );
|
||||
int HDF_MPI_File_sync( MPI_File fh );
|
||||
#endif /* PCF_BUILD */
|
||||
|
@ -9,6 +9,7 @@ top_builddir=..
|
||||
srcdir=@srcdir@
|
||||
@COMMENCE@
|
||||
TRACE=perl ../bin/trace
|
||||
.SUFFIXES: .c .o .lo .x
|
||||
###############################################################################
|
||||
## MODIFICATONS FOR CREATING THE PABLO INSTRUMENTED LIBRARY libhdf5-inst.a
|
||||
## For Pablo instrumenation of parallel code, remove the # from in front of
|
||||
@ -19,7 +20,8 @@ TRACE=perl ../bin/trace
|
||||
###############################################################################
|
||||
#PABLO_MPIO_FLAGS = -DH5_HAVE_PARALLEL -DH5_HAVE_MPIOTRACE
|
||||
PABLO_INC = $(PABLO_TRACELIB)/include
|
||||
PABLO_FLAGS = -I. -I../src -I$(PABLO_INC) -DH5_HAVE_PABLO $(PABLO_MPIO_FLAGS)
|
||||
PABLO_FLAGS = -I../src -I$(PABLO_INC) -DH5_HAVE_PABLO $(PABLO_MPIO_FLAGS)
|
||||
CPPFLAGS=-I. -I. -I../src -DH5_DEBUG_API -DNDEBUG $(PABLO_FLAGS) -D$(PABLO_BLD)_BUILD
|
||||
|
||||
## This is our main target:
|
||||
LIB=libhdf5-inst.a
|
||||
@ -45,17 +47,15 @@ LIB_SRC= \
|
||||
H5FDlog.c H5Gnode.c H5Olayout.c H5Spoint.c \
|
||||
H5FDmpio.c H5Gstab.c H5Omtime.c H5Sselect.c
|
||||
|
||||
PABLO_OBJ = PabloHDF.o PabloHDF_RT.o PabloHDF_SDDF.o
|
||||
PABLO_OBJ = PabloHDF.o PabloHDF_RT.o PabloHDF_SDDF.o PabloHDF_MPIO.o
|
||||
|
||||
LIB_COBJ = $(LIB_SRC:.c=.o)
|
||||
LIB_XOBJ = $(LIB_SRC:.c=.x)
|
||||
LIB_COBJ = $(LIB_XOBJ:.x=.o)
|
||||
LIB_OBJ = $(PABLO_OBJ) $(LIB_COBJ)
|
||||
lib_obj: $(LIB_OBJ)
|
||||
|
||||
copy_src:
|
||||
cp ../src/*.c .
|
||||
touch ../src/*.c
|
||||
touch *.c
|
||||
touch copy_src
|
||||
.c.x:
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) -c ../src/$*.c -o $*.o
|
||||
cp $*.o $@
|
||||
|
||||
# 'vpath' directive is only supported in gmake, take out - QAK
|
||||
#vpath %.c $(shell echo $(SRCDIRS) | sed 's/ /:/g')
|
||||
@ -74,8 +74,8 @@ PABLO_HDR = HDFentryNames.h HDFidList.h ProcIDs.h HDFTrace.h ProcTrace.h \
|
||||
## makefile.
|
||||
##
|
||||
lib: $(LIB)
|
||||
$(LIB): $(LIB_OBJ)
|
||||
$(AR) -rc $@ *.o
|
||||
$(LIB): $(PABLO_OBJ) $(LIB_XOBJ)
|
||||
$(AR) -rc $@ $(LIB_OBJ)
|
||||
$(RANLIB) $@
|
||||
##
|
||||
## Dummy this out so that there is no redundant make of the library
|
||||
@ -116,14 +116,14 @@ uninstall:
|
||||
## remove things like object files but not libraries or executables.
|
||||
##
|
||||
mostlyclean:
|
||||
$(RM) $(LIB_OBJ) $(TEST_OBJ) $(PROG_OBJ) $(MOSTLYCLEAN)
|
||||
$(RM) $(LIB_OBJ) $(LIB_XOBJ) $(TEST_OBJ) $(PROG_OBJ) $(MOSTLYCLEAN)
|
||||
|
||||
## Like `mostlyclean' except it also removes the final targets: things like
|
||||
## libraries and executables. This target doesn't remove any file that
|
||||
## is part of the HDF5 distribution.
|
||||
##
|
||||
clean: mostlyclean
|
||||
$(RM) $(LIB) $(TESTS) $(PROGS) $(CLEAN) $(PABLO_CLEAN) H*.c copy_src
|
||||
$(RM) $(LIB) $(TESTS) $(PROGS) $(CLEAN) $(PABLO_CLEAN) H*.c
|
||||
|
||||
## Like `clean' except it also removes files that were created by running
|
||||
## configure. If you've unpacked the source and built HDF5 without creating
|
||||
@ -142,11 +142,9 @@ distclean: clean
|
||||
maintainer-clean: distclean
|
||||
$(RM) *~ core core.* *.core *.bak *.contrib gmon.out
|
||||
|
||||
.c.o:
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) $(PABLO_FLAGS) -c $<
|
||||
|
||||
.c.lo:
|
||||
@$(LT_COMPILE) $(CFLAGS) $(CPPFLAGS) $(PABLO_FLAGS) -c $<
|
||||
@$(LT_COMPILE) $(CFLAGS) $(CPPFLAGS) -c ../src/$*.c $<
|
||||
|
||||
|
||||
PABLO_INCLUDES = HDFentryNames.h HDFidList.h ProcIDs.h HDFTrace.h ProcTrace.h \
|
||||
@ -188,14 +186,85 @@ ProcTrace.inc: HDFidList.h
|
||||
echo " parameter (NoTrace = 4)" >> $@
|
||||
|
||||
|
||||
PabloHDF.o: PabloHDF.c $(PABLO_INCLUDES) copy_src
|
||||
PabloHDF.o: PabloHDF.c $(PABLO_INCLUDES)
|
||||
$(CC) -g $(CFLAGS) $(CPPFLAGS) $(PABLO_FLAGS) -c $<
|
||||
|
||||
PabloHDF_RT.o: PabloHDF_RT.c $(PABLO_INCLUDES) copy_src
|
||||
PabloHDF_RT.o: PabloHDF_RT.c $(PABLO_INCLUDES)
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) $(PABLO_FLAGS) -c $<
|
||||
|
||||
PabloHDF_SDDF.o: PabloHDF_SDDF.c $(PABLO_INCLUDES) copy_src
|
||||
PabloHDF_SDDF.o: PabloHDF_SDDF.c $(PABLO_INCLUDES)
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) $(PABLO_FLAGS) -c $<
|
||||
|
||||
PabloHDFff.o: PabloHDFff.f $(PABLO_INCLUDES) copy_src
|
||||
PabloHDF_MPIO.o: PabloHDF_MPIO.c $(PABLO_INCLUDES)
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) $(PABLO_FLAGS) -c $<
|
||||
|
||||
PabloHDFff.o: PabloHDFff.f $(PABLO_INCLUDES)
|
||||
$(F77) $(FFLAGS) -O -c PabloHDFff.f
|
||||
|
||||
H5.c: ../src/H5.c
|
||||
H5A.c: ../src/H5A.c
|
||||
H5AC.c: ../src/H5AC.c
|
||||
H5B.c: ../src/H5B.c
|
||||
H5D.c: ../src/H5D.c
|
||||
H5E.c: ../src/H5E.c
|
||||
H5F.c: ../src/H5F.c
|
||||
H5FD.c: ../src/H5FD.c
|
||||
H5FDcore.c: ../src/H5FDcore.c
|
||||
H5FDdpss.c: ../src/H5FDdpss.c
|
||||
H5FDfamily.c: ../src/H5FDfamily.c
|
||||
H5FDgass.c: ../src/H5FDgass.c
|
||||
H5FDlog.c: ../src/H5FDlog.c
|
||||
H5FDmpio.c: ../src/H5FDmpio.c
|
||||
H5FDmulti.c: ../src/H5FDmulti.c
|
||||
H5FDsec2.c: ../src/H5FDsec2.c
|
||||
H5FDsrb.c: ../src/H5FDsrb.c
|
||||
H5FDstdio.c: ../src/H5FDstdio.c
|
||||
H5FDstream.c: ../src/H5FDstream.c
|
||||
H5FL.c: ../src/H5FL.c
|
||||
H5Farray.c: ../src/H5Farray.c
|
||||
H5Fcontig.c: ../src/H5Fcontig.c
|
||||
H5Fistore.c: ../src/H5Fistore.c
|
||||
H5Fseq.c: ../src/H5Fseq.c
|
||||
H5G.c: ../src/H5G.c
|
||||
H5Gent.c: ../src/H5Gent.c
|
||||
H5Gnode.c: ../src/H5Gnode.c
|
||||
H5Gstab.c: ../src/H5Gstab.c
|
||||
H5HG.c: ../src/H5HG.c
|
||||
H5HL.c: ../src/H5HL.c
|
||||
H5I.c: ../src/H5I.c
|
||||
H5MF.c: ../src/H5MF.c
|
||||
H5MM.c: ../src/H5MM.c
|
||||
H5O.c: ../src/H5O.c
|
||||
H5Oattr.c: ../src/H5Oattr.c
|
||||
H5Ocomp.c: ../src/H5Ocomp.c
|
||||
H5Ocont.c: ../src/H5Ocont.c
|
||||
H5Odtype.c: ../src/H5Odtype.c
|
||||
H5Oefl.c: ../src/H5Oefl.c
|
||||
H5Ofill.c: ../src/H5Ofill.c
|
||||
H5Olayout.c: ../src/H5Olayout.c
|
||||
H5Omtime.c: ../src/H5Omtime.c
|
||||
H5Oname.c: ../src/H5Oname.c
|
||||
H5Onull.c: ../src/H5Onull.c
|
||||
H5Osdspace.c: ../src/H5Osdspace.c
|
||||
H5Oshared.c: ../src/H5Oshared.c
|
||||
H5Ostab.c: ../src/H5Ostab.c
|
||||
H5P.c: ../src/H5P.c
|
||||
H5R.c: ../src/H5R.c
|
||||
H5S.c: ../src/H5S.c
|
||||
H5Sall.c: ../src/H5Sall.c
|
||||
H5Shyper.c: ../src/H5Shyper.c
|
||||
H5Smpio.c: ../src/H5Smpio.c
|
||||
H5Snone.c: ../src/H5Snone.c
|
||||
H5Spoint.c: ../src/H5Spoint.c
|
||||
H5Sselect.c: ../src/H5Sselect.c
|
||||
H5T.c: ../src/H5T.c
|
||||
H5TB.c: ../src/H5TB.c
|
||||
H5TS.c: ../src/H5TS.c
|
||||
H5Tbit.c: ../src/H5Tbit.c
|
||||
H5Tconv.c: ../src/H5Tconv.c
|
||||
H5Tinit.c: ../src/H5Tinit.c
|
||||
H5Tvlen.c: ../src/H5Tvlen.c
|
||||
H5V.c: ../src/H5V.c
|
||||
H5Z.c: ../src/H5Z.c
|
||||
H5Zdeflate.c: ../src/H5Zdeflate.c
|
||||
H5detect.c: ../src/H5detect.c
|
||||
|
1468
pablo/PabloHDF.c
1468
pablo/PabloHDF.c
File diff suppressed because it is too large
Load Diff
1364
pablo/PabloHDF_MPIO.c
Normal file
1364
pablo/PabloHDF_MPIO.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -109,6 +109,7 @@
|
||||
// printFileMappingsRT : print map of named identifiers *
|
||||
// _hdfNameDescriptor() : writes SDDF descriptor packet for names *
|
||||
//======================================================================*/
|
||||
#ifndef PCF_BUILD
|
||||
#ifdef _HDF5_
|
||||
#include "H5config.h"
|
||||
#endif
|
||||
@ -217,6 +218,7 @@ char *FileName; /* Name of Trace file */
|
||||
HDFsetInfo openInfo; /* Info about file opened */
|
||||
char openName[256]; /* Name of opened file */
|
||||
extern char *hdfRecordPointer;
|
||||
extern char HDFprocNames[][40];
|
||||
/*======================================================================*
|
||||
// NAME *
|
||||
// HDFinitTrace_RT-- initialize HDF real-time tracing *
|
||||
@ -1584,7 +1586,8 @@ void _hdfDescriptorRT( char *recordName, char *recordDescription,
|
||||
//======================================================================*/
|
||||
void writeHDFRecDescrptrsRT( void )
|
||||
{
|
||||
char HDFProcNames[][40] = {
|
||||
/*
|
||||
char HDFprocNames[][40] = {
|
||||
"noName",
|
||||
"noName",
|
||||
"noName",
|
||||
@ -1593,13 +1596,14 @@ void writeHDFRecDescrptrsRT( void )
|
||||
# include "HDFentryNames.h"
|
||||
"HDF_Last_Entry"
|
||||
};
|
||||
*/
|
||||
int j, FAMILY;
|
||||
char BUF1[256], BUF2[256] ;
|
||||
_hdfNameDescriptor(); /* Descriptor for named identifiers */
|
||||
for ( j = 0; j < NumHDFProcs; ++j ) {
|
||||
if ( HDFQueues[j] != NULL ) {
|
||||
strcpy( BUF2, "HDF ");
|
||||
strcat( BUF2, HDFProcNames[j] );
|
||||
strcat( BUF2, HDFprocNames[j] );
|
||||
strcat( BUF2, " Procedure Summary");
|
||||
strcpy( BUF1, BUF2 );
|
||||
strcat( BUF1, " Trace");
|
||||
@ -1690,3 +1694,4 @@ void _hdfNameDescriptor( void )
|
||||
|
||||
putBytes( recordBuffer, (unsigned) recordLength );
|
||||
}
|
||||
#endif /* PCF_BUILD */
|
||||
|
@ -55,12 +55,9 @@
|
||||
// Generate a SDDF binary format record descriptor *
|
||||
// for the HDF procedure exits *
|
||||
//======================================================================*/
|
||||
#ifndef PCF_BUILD
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef H5_HAVE_PARALLEL
|
||||
#include "mpi.h"
|
||||
#endif
|
||||
|
||||
#include "H5config.h"
|
||||
#undef H5_HAVE_PABLO
|
||||
#include "H5private.h"
|
||||
@ -112,6 +109,7 @@ void endIOTrace( void );
|
||||
void endMPIOTrace( void ) {return;}
|
||||
#endif
|
||||
extern char *hdfRecordPointer;
|
||||
extern char HDFprocNames[][40];
|
||||
/*======================================================================*
|
||||
// Prototypes of functions in this file. *
|
||||
//======================================================================*/
|
||||
@ -206,7 +204,7 @@ int *procEntryCalled;
|
||||
/*======================================================================*
|
||||
// The HDFProcNames array holds the names of the HDF entries. *
|
||||
//======================================================================*/
|
||||
static char HDFProcNames[][40] = {
|
||||
/*static char HDFprocNames[][40] = {
|
||||
"noName",
|
||||
"noName",
|
||||
"noName",
|
||||
@ -214,7 +212,7 @@ static char HDFProcNames[][40] = {
|
||||
"noName",
|
||||
#include "HDFentryNames.h"
|
||||
"HDF_LAST_ENTRY"
|
||||
};
|
||||
};*/
|
||||
/*=======================================================================
|
||||
// NAME *
|
||||
// HDFinitTrace_SDDF -- initalize HDF tracing with SDDF records *
|
||||
@ -675,7 +673,7 @@ void createHDFTraceDescriptor( int Inx )
|
||||
char BUF1[256], BUF2[256] ;
|
||||
int FAMILY;
|
||||
strcpy( BUF2, "HDF ");
|
||||
strcat( BUF2, HDFProcNames[Inx] );
|
||||
strcat( BUF2, HDFprocNames[Inx] );
|
||||
strcat( BUF2, " Procedure");
|
||||
strcpy( BUF1, BUF2 );
|
||||
strcat( BUF1, " Trace");
|
||||
@ -826,4 +824,4 @@ void _hdfMiscDescriptor( void )
|
||||
putBytes( recordBuffer, (unsigned) recordLength );
|
||||
}
|
||||
|
||||
/*#endif */ /* H5_HAVE_PABLO */
|
||||
#endif /* PCF_BUILD */
|
||||
|
@ -150,9 +150,16 @@ enum MPIeventIDs {
|
||||
#define ProcIndexForHDFExit( ID ) ProcIndexForHDFEntry(-ID)
|
||||
#define HDFIXtoEventID( ID ) ( (ID) + BEGIN_HDF )
|
||||
|
||||
#ifdef PCF_BUILD
|
||||
#define TRACE_ON(mask, ID) \
|
||||
if ( procTrace[mask] || procTrace[ID] ) startHDFtraceEvent( ID )
|
||||
#define TRACE_OFF(mask, ID ) \
|
||||
if ( procTrace[mask] || procTrace[ID] ) endHDFtraceEvent( ID, 0, NULL, 0 )
|
||||
#else
|
||||
#define TRACE_ON(mask, ID) \
|
||||
if ( procTrace[mask] || procTrace[ID] ) startHDFtraceEvent( HDFIXtoEventID( ID ) )
|
||||
#define TRACE_OFF(mask, ID ) \
|
||||
if ( procTrace[mask] || procTrace[ID] ) endHDFtraceEvent(-HDFIXtoEventID(ID), 0, NULL, 0 )
|
||||
#endif /* PCF_BUILD */
|
||||
|
||||
#endif /* PROCIDS_H */
|
||||
|
@ -88,11 +88,13 @@
|
||||
#undef RUNTIME_TRACE
|
||||
#endif
|
||||
enum HDF_IDS {
|
||||
NO_TRACE,
|
||||
RUNTIME_TRACE,
|
||||
SUMMARY_TRACE,
|
||||
MPI_RUNTIME_TRACE,
|
||||
MPI_SUMMARY_TRACE,
|
||||
NO_TRACE,
|
||||
DETAILED=RUNTIME_TRACE,
|
||||
LAST_TRACE_TYPE=MPI_SUMMARY_TRACE,
|
||||
#include "HDFidList.h"
|
||||
NUM_HDF_IDS
|
||||
} ;
|
||||
|
@ -4,10 +4,15 @@ To build the Pablo Instrumented version of the HDF 5 library
|
||||
|
||||
2) Make the normal HDF 5 library
|
||||
|
||||
3) Edit the make file in this directory:
|
||||
- Find the variable PABLO_INC and set it to the path to the include
|
||||
directory for the Pablo TraceLibrary
|
||||
- If building to instrument MPI programs, uncomment the line beginning
|
||||
PABLO_MPI_FLAGS. In this case, the Pablo TraceLibrary should be built
|
||||
to trace the MPI-I/O calls.
|
||||
- Issue the make or make install command
|
||||
3) set the environment variable PABLO_TRACELIB to the path of the directory
|
||||
continaining the Pablo TraceLibrary. This directory should contain the
|
||||
lib and include directories as subdirectories
|
||||
|
||||
4) If building to instrument MPI programs, uncomment the line beginning
|
||||
PABLO_MPI_FLAGS. In this case, the Pablo TraceLibrary should be built
|
||||
to trace the MPI-I/O calls.
|
||||
|
||||
5) If you are going to link with the Pablo TraceLibraries, issue the
|
||||
make or make install commands
|
||||
If you are going to link with the Pablo PCF, issue one of the commands
|
||||
make PABLO_BLD=PCF or make PABLO_BLD=PCF install
|
||||
|
Loading…
Reference in New Issue
Block a user