📄 readme
字号:
status variable is filled only when used with MPICH 1.2.1 or later.You can open files on multiple file systems in the same program. Theonly restriction is that the directory where the file is to be openedmust be accessible from the process opening the file. For example, aprocess running on one workstation may not be able to access adirectory on the local disk of another workstation, and thereforeROMIO will not be able to open a file in such a directory. NFS-mountedfiles can be accessed.An MPI-IO file created by ROMIO is no different than any other filecreated by the underlying file system. Therefore, you may use any ofthe commands provided by the file system to access the file, e.g., ls,mv, cp, rm, ftp.Using ROMIO on NFS------------------To use ROMIO on NFS, file locking with fcntl must work correctly onthe NFS installation. On some installations, fcntl locks don't work.To get them to work, you need to use Version 3 of NFS, ensure that thelockd daemon is running on all the machines, and have the systemadministrator mount the NFS file system with the "noac" option (noattribute caching). Turning off attribute caching may reduceperformance, but it is necessary for correct behavior.The following are some instructions we received from Ian Wells of HPfor setting the noac option on NFS. We have not tried themourselves. We are including them here because you may find them useful. Note that some of the steps may be specific to HPsystems, and you may need root permission to execute some of thecommands. >1. first confirm you are running nfs version 3 > >rpcnfo -p `hostname` | grep nfs > >ie > goedel >rpcinfo -p goedel | grep nfs > 100003 2 udp 2049 nfs > 100003 3 udp 2049 nfs > > >2. then edit /etc/fstab for each nfs directory read/written by MPIO > on each machine used for multihost MPIO. > > Here is an example of a correct fstab entry for /epm1: > > ie grep epm1 /etc/fstab > > ROOOOT 11>grep epm1 /etc/fstab > gershwin:/epm1 /rmt/gershwin/epm1 nfs bg,intr,noac 0 0 > > if the noac option is not present, add it > and then remount this directory > on each of the machines that will be used to share MPIO files > >ie > >ROOOOT >umount /rmt/gershwin/epm1 >ROOOOT >mount /rmt/gershwin/epm1 > >3. Confirm that the directory is mounted noac: > >ROOOOT >grep gershwin /etc/mnttab >gershwin:/epm1 /rmt/gershwin/epm1 nfs >noac,acregmin=0,acregmax=0,acdirmin=0,acdirmax=0 0 0 899911504ROMIO Installation Instructions-------------------------------Since ROMIO is included in MPICH, LAM, HP MPI, SGI MPI, and NEC MPI,you don't need to install it separately if you are using any of theseMPI implementations. If you are using some other MPI, you canconfigure and build ROMIO as follows:Untar the tar file as gunzip -c romio.tar.gz | tar xvf -OR zcat romio.tar.Z | tar xvf -THEN cd romio ./configure makeSome example programs and a Makefile are provided in the romio/test directory.Run the examples the way you would run any MPI program. Each program takes the filename as a command-line argument "-fname filename". The configure script by default configures ROMIO for the file systemsmost likely to be used on the given machine. If you wish, you canexplicitly specify the file systems by using the "-file_system" optionto configure. Multiple file systems can be specified by using "+" as aseparator. For example, ./configure -file_system=xfs+nfsFor the entire list of options to configure do ./configure -h | moreAfter building a specific version as above, you can install it in aparticular directory with make install PREFIX=/usr/local/romio (or whatever directory you like)or just make install (if you used -prefix at configure time)If you intend to leave ROMIO where you built it, you should NOT install it (install is used only to move the necessary parts of a built ROMIO to another location). The installed copy will have the include files,libraries, man pages, and a few other odds and ends, but not the wholesource tree. It will have a test directory for testing theinstallation and a location-independent Makefile built duringinstallation, which users can copy and modify to compile and linkagainst the installed copy. To rebuild ROMIO with a different set of configure options, do make distcleanto clean everything including the Makefiles created by configure.Then run configure again with the new options, followed by make.Testing ROMIO-------------To test if the installation works, do make testing in the romio/test directory. This calls a script that runs the testprograms and compares the results with what they should be. Bydefault, "make testing" causes the test programs to create files inthe current directory and use whatever file system that correspondsto. To test with other file systems, you need to specify a filename ina directory corresponding to that file system as follows: make testing TESTARGS="-fname=/foo/piofs/test"Compiling and Running MPI-IO Programs-------------------------------------If ROMIO is not already included in the MPI implementation, you needto include the file mpio.h for C or mpiof.h for Fortran in your MPI-IOprogram. Note that on HP machines running HPUX and on NEC SX-4, you need tocompile Fortran programs with mpif90, because the f77 compilers onthese machines don't support 8-byte integers. With MPICH, HP MPI, or NEC MPI, you can compile MPI-IO programs as mpicc foo.cor mpif77 foo.for mpif90 foo.fAs mentioned above, mpif90 is preferred over mpif77 on HPUX and NECbecause the f77 compilers on those machines do not support 8-byte integers.With SGI MPI, you can compile MPI-IO programs as cc foo.c -lmpior f77 foo.f -lmpior f90 foo.f -lmpiWith LAM, you can compile MPI-IO programs as hcc foo.c -lmpior hf77 foo.f -lmpiIf you have built ROMIO with some other MPI implementation, you cancompile MPI-IO programs by explicitly giving the path to the includefile mpio.h or mpiof.h and explicitly specifying the path to thelibrary libmpio.a, which is located in $(ROMIO_HOME)/lib/$(ARCH)/libmpio.a .Run the program as you would run any MPI program on the machine. Ifyou use mpirun, make sure you use the correct mpirun for the MPIimplementation you are using. For example, if you are using MPICH onan SGI machine, make sure that you use MPICH's mpirun and not SGI'smpirun.The Makefile in the romio/test directory illustrates how to compileand link MPI-IO programs. Limitations of this version of ROMIO------------------------------------* When used with any MPI implementation other than MPICH 1.2.1 (or later),the "status" argument is not filled in any MPI-IO function. Consequently,MPI_Get_count and MPI_Get_elements will not work when passed the statusobject from an MPI-IO operation.* All nonblocking I/O functions use a ROMIO-defined "MPIO_Request"object instead of the usual "MPI_Request" object. Accordingly, twofunctions, MPIO_Test and MPIO_Wait, are provided to wait and test onthese MPIO_Request objects. They have the same semantics as MPI_Testand MPI_Wait.int MPIO_Test(MPIO_Request *request, int *flag, MPI_Status *status);int MPIO_Wait(MPIO_Request *request, MPI_Status *status);The usual functions MPI_Test, MPI_Wait, MPI_Testany, etc., will notwork for nonblocking I/O. * This version works only on a homogeneous cluster of machines,and only the "native" file data representation is supported.* When used with any MPI implementation other than MPICH 1.2.1 (or later),all MPI-IO functions return only two possible error codes---MPI_SUCCESSon success and MPI_ERR_UNKNOWN on failure.* Shared file pointers are not supported on PVFS and IBM PIOFS filesystems because they don't support fcntl file locks, and ROMIO usesthat feature to implement shared file pointers.* On HP machines running HPUX and on NEC SX-4, you need to compileFortran programs with mpif90 instead of mpif77, because the f77compilers on these machines don't support 8-byte integers.* The file-open mode MPI_MODE_EXCL does not work on Intel PFS file system,due to a bug in PFS.Usage Tips----------* When using ROMIO with SGI MPI, you may sometimes get an errormessage from SGI MPI: ``MPI has run out of internal datatypeentries. Please set the environment variable MPI_TYPE_MAX foradditional space.'' If you get this error message, add this line toyour .cshrc file: setenv MPI_TYPE_MAX 65536 Use a larger number if you still get the error message.* If a Fortran program uses a file handle created using ROMIO's Cinterface, or vice-versa, you must use the functions MPI_File_c2f or MPI_File_f2c (see MPI-2 Section 4.12.4). Such a situation occurs,for example, if a Fortran program uses an I/O library written in Cwith MPI-IO calls. Similar functions MPIO_Request_f2c andMPIO_Request_c2f are also provided.* For Fortran programs on the Intel Paragon, you may needto provide the complete path to mpif.h in the include statement, e.g., include '/usr/local/mpich/include/mpif.h'instead of include 'mpif.h'This is because the -I option to the Paragon Fortran compiler if77doesn't work correctly. It always looks in the default directories first and, therefore, picks up Intel's mpif.h, which is actually thempif.h of an older version of MPICH. ROMIO Users Mailing List------------------------Please register your copy of ROMIO with us by sending emailto majordomo@mcs.anl.gov with the messagesubscribe romio-usersThis will enable us to notify you of new releases of ROMIO as well asbug fixes.Reporting Bugs--------------If you have trouble, first check the users guide (inromio/doc/users-guide.ps.gz). Then check the on-line list of knownbugs and patches at http://www.mcs.anl.gov/romio .Finally, if you still have problems, send a detailed message containing: The type of system (often, uname -a) The output of configure The output of make Any programs or teststo romio-maint@mcs.anl.gov .ROMIO Internals---------------A key component of ROMIO that enables such a portable MPI-IOimplementation is an internal abstract I/O device layer calledADIO. Most users of ROMIO will not need to deal with the ADIO layer atall. However, ADIO is useful to those who want to port ROMIO to someother file system. The ROMIO source code and the ADIO paper(see doc/README) will help you get started.MPI-IO implementation issues are discussed in our IOPADS '99 paper,"On Implementing MPI-IO Portably and with High Performance."All ROMIO-related papers are available online fromhttp://www.mcs.anl.gov/romio.Learning MPI-IO---------------The book "Using MPI-2: Advanced Features of the Message-PassingInterface," published by MIT Press, provides a tutorial introduction toall aspects of MPI-2, including parallel I/O. It has lots of exampleprograms. See http://www.mcs.anl.gov/mpi/usingmpi2 for furtherinformation about the book.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -