summaryrefslogtreecommitdiffstats
path: root/perform/pio_engine.c
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r9727] Purpose:Quincey Koziol2004-12-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-) Description: Generally speaking, this is the "signed->unsigned" change to selections. However, in the process of merging code back, things got stickier and stickier until I ended up doing a big "sync the two branches up" operation. So... I brought back all the "infrastructure" fixes from the development branch to the release branch (which I think were actually making some improvement in performance) as well as fixed several bugs which had been fixed in one branch, but not the other. I've also tagged the repository before making this checkin with the label "before_signed_unsigned_changes". Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel & fphdf5 FreeBSD 4.10 (sleipnir) w/threadsafe FreeBSD 4.10 (sleipnir) w/backward compatibility Solaris 2.7 (arabica) w/"purify options" Solaris 2.8 (sol) w/FORTRAN & C++ AIX 5.x (copper) w/parallel & FORTRAN IRIX64 6.5 (modi4) w/FORTRAN Linux 2.4 (heping) w/FORTRAN & C++ Misc. update:
* [svn-r7181] Purpose:Quincey Koziol2003-07-071-4/+0
| | | | | | | | | | | Version update Description: Removed 1.4 compatibility code in the library. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest
* [svn-r7128] Purpose:Albert Cheng2003-06-301-1/+4
| | | | | | | | | | | | | | | feature change, new feature. Description: Had the HDF5_PARAPREFIX default set to /tmp. Changed it to null so that data files are created in current directory by default. Also added a code to print data filename used when debug level > 0. Platforms tested: Tested in modi4 parallel. Misc. update:
* [svn-r7091] Purpose:Quincey Koziol2003-06-241-11/+0
| | | | | | | | | | | | | Code cleanup Description: Remove the fill-value option entirely, since the 1.5.x library's default behavior is now the same as the 1.4.x behavior and also there is no corresponding code for implementing fill-values with the POSIX or MPI-I/O tests. Platforms tested: FreeBSD 4.8 (sleipnir) w/parallel too small to need h5committest
* [svn-r7019] Purpose:Quincey Koziol2003-06-101-0/+4
| | | | | | | | | | | | | | Compatibility fix Description: The H5P[set|get]_fapl_mpiposix calls changed between v1.4.x and v1.5.x. Solution: Wrap them in the v1.4 backward compatibility #ifdefs and update tests, etc. Platforms tested: FreeBSD 4.8 (sleipnir) w/paralle & v1.4 compatibility h5committest pointless
* [svn-r6806] Purpose:Bill Wendling2003-05-061-2/+3
| | | | | | | | | | | | | | | | Bug Fix Description: When I changed the H5P{set,get}_fapl_mpiposix functions to accept another parameter, I didn't change it in these files. Solution: Added the new "use_gpfs" parameter. Platforms tested: Modi4 (only affects the parallel stuff, so no need for full testing). Misc. update:
* [svn-r5890] Purpose:Bill Wendling2002-08-231-2/+2
| | | | | | | | | | Bug Fix Description: Some more naming mistakes. Solution: Stopped calling it ds_start and calling the structure its real name. Platforms tested: NERSC
* [svn-r5889] Purpose:Bill Wendling2002-08-231-9/+9
| | | | | | | | Bug Fix Description: Structure elements in the GPFS code weren't named correctly. Solution: Changed the names to the correct values.
* [svn-r5807] Purpose:Bill Wendling2002-07-171-39/+128
| | | | | | | | | | | | | | | | | | | | | | | | | Update, Bug Fix, and Feature Add Description: - Updated how AC_{ENABLE,WITH} help messages were being generated. Autoconf now gives you an AC_HELP_STRING macro to use to create them. - Fixed the problem with Linux LFS on RedHat 7.3 machines. It wasn't finding getdents64(), so we can't rely on that being present anymore... - Added GPFS detection and setting. - Updated how compression is specified. It's no longer necessary to test for HAVE_ZLIB_H, HAVE_LIBZ, and HAVE_COMPRESS2. The one macro {H5_}HAVE_COMPRESSION takes care of all of these. Solution: Changed the check for Linux LFS from looking for getdents() to looking at the version number of the kernel (using the uname -r command). You can still override with the --enable-linux-lfs switch if you really believe that your <2.4 kernel has LFS support. Platforms tested: Linux (2.2 and 2.4)
* [svn-r5798] Purpose:Quincey Koziol2002-07-151-6/+17
| | | | | | | | | | New feature. Description: Added MPI-posix VFL driver support. Platforms tested: FreeBSD 4.6 (sleipnir) w/parallel & IRIX64 6.5 (modi4) w/parallel
* [svn-r5760] Purpose:Quincey Koziol2002-07-021-470/+710
| | | | | | | | | | New features, etc. Description: Bring over all the recent changes from the release branch. Platforms tested: IRIX64 6.5 (modi4) w/parallel
* [svn-r5720] Purpose:Quincey Koziol2002-06-271-85/+145
| | | | | | | | | | New Feature Description: Added support for collective I/O with MPI and HDF5 access methods. Platforms tested: IRIX64 6.5 (modi4) w/parallel
* [svn-r5718] Purpose:Quincey Koziol2002-06-271-173/+128
| | | | | | | | | | | | New Feature Description: Added interleaved block pattern to MPI and HDF5 access methods. Also, changed the blocks to just use the same size as the regular blocks for I/O, instead of a separate block size. Platforms tested: IRIX64 6.5 (modi4) w/parallel
* [svn-r5674] Purpose:Quincey Koziol2002-06-191-8/+8
| | | | | | | | | | Code cleanup Description: Removed more compiler warnings, etc. Platforms tested: Linux 2.2.x (eirene) w/parallel
* [svn-r5667] Purpose:Quincey Koziol2002-06-191-13/+13
| | | | | | | | | | Code cleanup Description: Turn on more warnings in the IRIX builds and clean them up. Platforms tested: IRIX64 6.5 (modi4) w/parallel
* [svn-r5547] Purpose:Quincey Koziol2002-06-061-1/+1
| | | | | | | | | | | | | Bug fix. Description: H5Fopen call was using H5P_DEFAULT instead of file access flags Solution: Changed H5P_DEFAULT to H5F_ACC_RDONLY Platforms tested: IRIX64 6.5 (modi4) w/parallel
* [svn-r5539] Description:Albert Cheng2002-06-061-21/+35
| | | | | | Added the '-D v' option for "verify data correctness". Platforms tested: modi4, eirene, burrwhite (all pp).
* [svn-r5531] Purpose:Bill Wendling2002-06-041-20/+296
| | | | | | | | | Feature Add Description: Added support for testing only the "write" operations. Use the "-w" or "--write-only" flags for this. Platforms tested: Linux (parallel) & Modi4 (parallel)
* [svn-r5503] Purpose:Albert Cheng2002-06-011-120/+363
| | | | | | | | | Features Description: Added a few macros to print rank and size of MPI_COMM_WORLD in a unifed style. Platforms tested: modi4, eirene, burrwhite
* [svn-r5486] Purpose:Albert Cheng2002-05-301-81/+35
| | | | | | | | | | | Code cleanup and new feature. Description: Cleaned out some old debug print statments. Added option -B for interleaved I/O block size. (Just parsing and sanity check is done. Real I/O implementation is not done yet.) Platforms tested: eirene(pp)
* [svn-r5481] Description:Albert Cheng2002-05-291-6/+6
| | | | | | | Renamed pio_info_g as h5_io_info_g to better reflect its general purpose. Platforms tested: eirene(pp)
* [svn-r5469] Purpose:Bill Wendling2002-05-281-5/+93
| | | | | | | | | | | | | Feature Addition Description: Added feature which prints out the parameters and the MPI_Info object for a run for each process. Added some functions for the GPFS system. They are ifdef'ed out right now (well, they need to ahve the non-existant H5_HAVE_GPFS macro set) and aren't in use just yet. But the stub functions are there. Platforms tested: Linux
* [svn-r5463] Description:Albert Cheng2002-05-281-15/+21
| | | | | | | | | | | Folded the changes made in v1.4 into v1.5. print library version information in help page too. Specify the nofill feature supported in v1.5 only. Print the values of the KB, MB and GB in case a user wants to see them. Setup a macro, H5_HAVE_NOFILL, to indicate if Dataset no fill feature is supported. If not, --no-fill is an invalid option. Platforms tested: modi4
* [svn-r5456] Purpose:Bill Wendling2002-05-221-117/+188
| | | | | | | | | | Update Description: Updating the source for the PIO performance tests with the current code that's in the V1.4 branch. It includes the newest command-line parameters. Platforms tested: Linux-pp
* [svn-r5446] Purpose:Albert Cheng2002-05-211-16/+1
| | | | | | | | | Feature Description: moved the routines of setting up and dumping MPI-info object to test library so that it is avaiable for all tests too. Platforms tested: modi4(pp), eirene (serial)
* [svn-r5426] Purpose:Albert Cheng2002-05-161-29/+25
| | | | | | | Folded the added feature of setting MPI Info object from v1.4 to this branch. Platforms tested: modi4
* [svn-r5407] Purpose:Albert Cheng2002-05-131-11/+16
| | | | | | | | | | | | | | | | | | Bug fix Description: Was not able to handle data size (file size) larger than 32bits. Was using long, which is only 4 bytes big in SP, thus overflowing into negative when trying to address 2GB or larger. Solution: Changed those variables involved in file size/offset calculation to type off_t. (If a certain system/compiler has off_t defined as 4 bytes, it can't write to file size larger than 2GB anyway.) Note that the lseek of SP with -D_LARGE_FILE still fails for offset larger than 2GB (works for 2GB). That has to be fixed soon. Platforms tested: burrwhite (linux 2.4) and modi4 parallel.
* [svn-r5375] Purpose:Albert Cheng2002-05-071-2/+2
| | | | | | Changed all API to use MPI_WTIME timer. Just to be consistent. Platforms tested: modi4
* [svn-r5369] Purpose:Quincey Koziol2002-05-071-4/+0
| | | | | | | | | | Code cleanup Description: Remove incorrect MPI_Barrier() call in data I/O loop. Platforms tested: IRIX64 6.5 (modi4)
* [svn-r5368] Purpose:Albert Cheng2002-05-071-2/+53
| | | | | | | | | | Bug fix, feature Description: Added code to time pure MPI_File_write_xxx and read_xxx routines. Moved the setting of the timer_g to when timer is created (new) and destroyed. Platforms tested: modi4pp
* [svn-r5367] Purpose:Bill Wendling2002-05-061-53/+7
| | | | | | | | | | | | | | | | | Modification Description: Put some of the variables into the global space so that random functions can access them. (The output and timer variables which point to the output file and timer resp.) Placed the debug level 4 prints into the timer module so that it's easier to automatically put timer start/stop printfs for new timers which are created. Added timers for MPI Time calls (called HDF5_MPI_WRITE and HDF5_MPI_READ). Platforms tested: Linux
* [svn-r5348] Purpose:Bill Wendling2002-05-031-3/+3
| | | | | | | | | | | Bug Fix Description: There was a duplicate declaration of print_indent() in the header and in the source files. Solution: Removed the public declaration and made the function static again. Platforms tested: Arabica
* [svn-r5334] Purpose:Bill Wendling2002-05-021-1/+52
| | | | | | | | | Port Description: Brought forward the changes (timing debug prints) from the 1.4 branch. Platforms tested: Linux
* [svn-r5232] Purpose:Albert Cheng2002-04-231-15/+16
| | | | | | | | | | | Bug fix Description: The symbol "RAW" is already defined in some ioctl.h files. Changed it to RAWIO. Platforms tested: Tflops. (I am commiting this from TFLOPS. Will check it out immediate to test on local machines.)
* [svn-r5212] Purpose:Albert Cheng2002-04-191-1/+1
| | | | | | | | Code improvement Description: Changed stat to HDstat macro for portability. Platforms tested: eirene.
* [svn-r5205] Purpose:Albert Cheng2002-04-191-1/+1
| | | | | | | | | | | | | | Code cleanup Description: Platform dependent code related to the struct stat and fstat calls polluted source codes. Hard to maintain. Solution: Platform dependent code are moved to H5private.h and then internal code can #include H5private.h. Repeat those macro definition for the stdio and multi drivers since they area examples for writing a virtual file driver. They must not use any internal code. Platforms tested: eirene (parallel), modi4 (serial including gass driver.)
* [svn-r4997] Purpose:Bill Wendling2002-02-201-0/+10
| | | | | | | | | | | | | | | | | | | | | | | Bug Fix Description: So, for Raw I/O in parallel, if you open a file with truncation by multiple processes, it looks as if one process could open the file and start writing to it while another process also opens the file with truncation, thus wiping out all of the stuff the first process wrote to the file. This is bad. Also added some garbage collection to the pio_perf routine to reclaim the space taken by some of the tables. Solution: Placed an MPI_Barrier() statement after the Raw open()/create() call so that all processes are synced up before they start writing to the file. Added free() calls to the tables which weren't being free'd. Platforms tested: Linux-pp (eirene)
* [svn-r4816] Bill Wendling2002-01-111-4/+6
| | | | | | | | | | | Purpose: Feature Fix Description: Added timer from open to close for write. Changed reporting of time for write and read to only measure the actual read/write instead of the open/close as well... Platforms tested: Linux(pp)
* [svn-r4811] Bill Wendling2002-01-101-10/+5
| | | | | | | | | | Purpose: Feature Add Description: Added the time it takes from opening the file to closing the file (over all files). Platforms tested: Linux
* [svn-r4746] Bill Wendling2001-12-191-64/+21
| | | | | | | | | | | | | | | | Purpose: Feature Fix Description: Changed so the "pio_perf" module handles creating and destroying the MPI Comm. Worked it so we get the minimum, maximum, and average times over a set of iterations. Solution: Lots. Had to pull the MPI Comm code from the "pio_engine" module and place it in the "pio_perf" module. Then worked on a way to have all processes send their time output to process 0, who collects it and gives back the min, max, and avg times for the iterations. Platforms tested: Linux. Doesn't work if you use more than 1 processor...*hrmph*
* [svn-r4733] Bill Wendling2001-12-181-196/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Purpose: Feature Changes Description: Okay, I needed to add in more parameters so that the user can modify how things are supposed to work with the PIO programs. Also needed to change the algorithm a bit to make these work. And needed to add in timing for the READ option. Solution: Added the above things. The parameters took a major rewrite of the command-line parsing stuff. Here's the usage statement: usage: pio_perf [OPTIONS] OPTIONS -h, --help Print a usage message and exit -d N, --num-dsets=N Number of datasets per file [default:1] -f S, --file-size=S Size of a single file [default: 64M] -F N, --num-files=N Number of files [default: 1] -H, --hdf5 Run HDF5 performance test -i, --num-iterations Number of iterations to perform [default: 1] -m, --mpiio Run MPI/IO performance test -o F, --output=F Output raw data into file F [default: none] -P N, --max-num-processes=N Maximum number of processes to use [default: 1] -p N, --min-num-processes=N Minimum number of processes to use [default: 1] -r, --raw Run raw (UNIX) performance test -X S, --max-xfer-size=S Maximum transfer buffer size [default: 1M] -x S, --min-xfer-size=S Minimum transfer buffer size [default: 1K] F - is a filename. N - is an integer >=0. S - is a size specifier, an integer >=0 followed by a size indicator: K - Kilobyte M - Megabyte G - Gigabyte Example: 37M = 37 Megabytes Platforms tested: Linux, but not fully finished...
* [svn-r4731] Description:Albert Cheng2001-12-171-7/+17
| | | | | | | | Added nfiles and ndsets parameters checking. Removed iteration variable since iterations would be done in Control routine. Platforms tested: Eirene(pp) and modi4(pp)
* [svn-r4723] Purpose:Albert Cheng2001-12-131-12/+34
| | | | | | | | | | | | | | | | | | Bug fix (or more like feature) Description: MPI_File_open does not truncate the filesize if file already exists. This created confusion during debugging as what the real file size is. It also interfere the real write bandwidth since the times required to allocate new disk-space vanishes for subsequent writes that are for offset shorter than previous file sizes. Added a MPI_File_set_size to reset the file size to 0 for every new file. Another bug is that the 'remove()' call may not work for MPIO/PHDF5 files. (e.g., filename may have some MPI prefix like "pfs:filename"). Replaced "remove" with MPI_File_delete for those cases. Platforms tested: modi4(pp) and eirene (pp)
* [svn-r4715] Purpose:Albert Cheng2001-12-131-25/+302
| | | | | | | | | | | bug fix, new feature Description: Added HDF5 write in do_write. Added a complete do_read. Still need timing code for the read part. Platforms tested: eirene (pp), modi4(pp). Did not test serial since all changes were done in parallel area.
* [svn-r4708] Purpose:Albert Cheng2001-12-121-39/+86
| | | | | | | | | | | | | | | Bug fixes, new features Description: There was a coding error in handling file open flags. Changed it to use &. Added do_cleanup to cleanup temporary test files but only if $HDF5_NOCLEANUP is not set. This is consistent with other test programs. Added logic so that each process is writing its own slabs of data only. Moved the number of process, rank of process and the communicator used for PIO run to be global variables. Makes the coding easier. (but this is not thread-safe.) Platforms tested: modi4(pp) and eirene(pp).
* [svn-r4700] Purpose:Albert Cheng2001-12-111-4/+15
| | | | | | | | new feature Description: It writes to MPIO files now. Platforms tested: eirene (pp)
* [svn-r4699] Purpose:Albert Cheng2001-12-111-108/+163
| | | | | | | | Bug fixes, feature, ... Description: Now it can do raw write. Platforms tested: modi4(pp), eirene (pp)
* [svn-r4698] Bill Wendling2001-12-111-16/+15
| | | | | | | | | | | | | | | Purpose: Bug Fix Description: Fixed so that it will display the correct timing data. It will also write to the correct file (which it wasn't before). Solution: Put the code in for displaying the time. Had to change the way I was passing an object to the pio_fopen() function from just being a structure to being a pointer so that the changes could be propagated back. Platforms tested: Linux
* [svn-r4691] Bill Wendling2001-12-101-10/+8
| | | | | | | | | Purpose: Small Fixes Description: After conversation with Albert, here are some small fixes for the performance stuff. Not too significant. Though, we did add the "buffer size" as a parameter I pass to the engine.
* [svn-r4690] Bill Wendling2001-12-101-41/+41
| | | | | | | | | | | | | | Purpose: Feature Fix Description: Added code so that it measures the time it takes to do I/O and return that to the calling function. This code doesn't quite work yet. There is something wrong with the MPI code in the "pio_engine.c" file...I don't know what's up with it... Platforms tested: Linux