Commit Graph

29 Commits

Author SHA1 Message Date
Bill Wendling
0a648bddc7 [svn-r5334] Purpose:
Port
Description:
    Brought forward the changes (timing debug prints) from the 1.4
    branch.
Platforms tested:
    Linux
2002-05-02 16:19:19 -05:00
Bill Wendling
03a08823e7 [svn-r5281] Purpose:
Update
Description:
    Changed the description of the help message so that the --hdf5,
    --mpio, --raw flags better say what they do.
Platforms tested:
    Linux
2002-04-29 12:25:32 -05:00
Albert Cheng
f980ab403a [svn-r5232] Purpose:
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.)
2002-04-23 11:07:50 -05:00
Bill Wendling
43bed07320 [svn-r4997] Purpose:
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)
2002-02-20 17:35:20 -05:00
Bill Wendling
504e6587ec [svn-r4995]
Purpose:
    Bone-headed Bug Fix
Description:
    There were blanks being put into the output. The cause: the
    "print_indent()" routine was printing indents for all of the
    processes, but only process 0 should have been printing them out at
    all (since process 0 is the one which prints out the reports).
Solution:
    Check to make sure that we're process 0 before printing the indents.
Platforms tested:
    Linux
2002-02-19 17:01:00 -05:00
Albert Cheng
a1c37b6eb8 [svn-r4964] Purpose:
Change default actions.
Description:
    Change the default maximum number of processes (-P) to use all processes
    instead of just 1 (old default).  Someone most likely wants to test
    the I/O performance with all processes involved.
    Also starts performance measurement with maximum number of processes
    and decrement it with each loop.  If the performance measurement
    needs to restart, it can run with fewer processes if those loops
    have completed.
Platforms tested:
    modi4 and eirene.
2002-02-14 10:51:12 -05:00
Bill Wendling
5bdf863a90 [svn-r4885] Purpose:
Bug Fix
Description:
	Throughput wasn't being calculated correctly.
Solution:
	We were using a value other than the actual time. Changed so that
	we're using the correct structure to grab the time out of it.
Platforms tested:
	Linux(pp)
2002-01-30 16:46:15 -05:00
Bill Wendling
cb905d215e [svn-r4882] Purpose:
Feature add and algorithm reworking.
Description:
	Added a "--debug" flag so we can print out various extra debugging
	information.

	Reworked the algorithm so that it's printing the correct throughput.
	Here's how it's supposed to work:

						process
				 T_0 T_1 T_2 T_3 ... T_n
	  iteration 1
	            2
	            .
	            .
	            .
	            m

	Retrieve the maximum time from each iteration over the number of
	processes. (So, if T_i had the maximum time in iteration j, then use
	that time). Calculate the "Throughput" of iteration j:

			S_j = (raw_size / T_i)

	Collect that information over all of the iterations. Then output the
	Max, Min, and Ave of all of the S_k's.
Platforms tested:
	Linux (pp)
2002-01-29 23:16:15 -05:00
Bill Wendling
0d069736a7 [svn-r4818]
Purpose:
	Small Fix
Description:
	Fixed the Min/Max/Average accumlation stuff...
Solution:
	Actually thought about the code and made it accumulate the
	information in the correct way.
Platforms tested:
	Linux
2002-01-11 15:30:02 -05:00
Albert Cheng
52bf29ae4a [svn-r4817] Description:
The code was doing too many MPI_Send for the gathering.
    Changed the get_minmax() to use the MPI_Allreduce routine.
Platforms tested:
    modi4
2002-01-11 15:16:44 -05:00
Bill Wendling
aa8897734f [svn-r4816]
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)
2002-01-11 14:44:51 -05:00
Bill Wendling
d2c8c031d9 [svn-r4811]
Purpose:
	Feature Add
Description:
	Added the time it takes from opening the file to closing the file
	(over all files).
Platforms tested:
	Linux
2002-01-10 13:45:34 -05:00
Bill Wendling
08926d9f6e [svn-r4809]
Purpose:
	Feature Fix
Description:
	Instead of outputting the # of kilobytes in a transfer size, output
	the total bytes. This helps when you're interested in just doing a
	copy-paste type of thing for the transfer buffer size.
Solution:
	Changed the output report
Platforms tested:
	Linux(pp)
2002-01-09 14:39:21 -05:00
Bill Wendling
4d20a1d87f [svn-r4803]
Purpose:
    Feature Add
Description:
    Added output which tells how large the file is (that is, the number
    of dsets * number of elements in a dset * sizeof(int)).
Platforms tested:
    Linux(pp)
2002-01-08 18:28:12 -05:00
Albert Cheng
173dd7f2fe [svn-r4802] Description:
The default minimum xfer size of 1K was way too slow for
    parallel file system like the PFS of Tflops.  Set it to
    128K to complete soon for default settings.
Platforms tested:
    Tflops, modi4.
2002-01-08 14:22:16 -05:00
Bill Wendling
94f3abb555 [svn-r4754]
Purpose:
	Feature Fix
Description:
	Added the minimum, maximum, and average time and MB/s for the write
	and read operations. It now prints the report out in a pretty clear
	format. It also includes how many iterations were done for the
	write/read operation.
Platforms tested:
	Linux
2001-12-21 16:39:52 -05:00
Albert Cheng
7defffc7e4 [svn-r4748] Purpose:
Bug fix
Description:
    All processes, including those that are not part of the PIO test
    sub-communicator, all attempted to run the PIO test.  It resulted
    in failures for those processes that are not supposed to get involved.
Solution:
    The function that creates the sub-communicator also returns a
    parameter indicating if the process is included in the PIO test
    sub-communicator.  Then only those processes will really do the
    PIO test.
Platforms tested:
    eirene (pp) and Modi4 (pp)
2001-12-21 00:58:41 -05:00
Bill Wendling
c9782c380b [svn-r4746]
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*
2001-12-19 17:10:15 -05:00
Bill Wendling
4df7c41311 [svn-r4743]
Purpose:
	Removed Debugging Statements
Description:
	Did just that.
Platforms tested:
	Linux
2001-12-18 16:48:12 -05:00
Bill Wendling
258a10c5c5 [svn-r4742]
Purpose:
	Feature Add
Description:
	Print out the transfer buffer size with the data
Platforms tested:
	Linux
2001-12-18 16:33:54 -05:00
Bill Wendling
5c891c5c51 [svn-r4741]
Purpose:
	Bug Fix
Description:
	The --raw, --hdf5, --mpiio options weren't being done correctly.
Solution:
	I had to change some of the tests for the io_type to & instead of |
	so that they'd work how I wanted them to work.
Platforms tested:
	Linux
2001-12-18 15:56:26 -05:00
Bill Wendling
d1d532069b [svn-r4733]
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...
2001-12-18 15:12:21 -05:00
Bill Wendling
cb85cfc5c6 [svn-r4712]
Purpose:
	DOH!
Description:
	Ugh! I forgot to add the -m flag to the list of "short" parameter
	codes. It wasn't even looking for them. *sigh*
Solution:
	Added it
Platforms tested:
	Linux
2001-12-12 16:46:46 -05:00
Bill Wendling
d3f9fa1434 [svn-r4703]
Purpose:
	Feature Fix
Description:
	Changed default size of file to 512MB. The "-m" flag is now in
	megabytes as well. This makes running things a bit faster.
Platforms tested:
	Linux
2001-12-12 11:53:13 -05:00
Bill Wendling
0421075efc [svn-r4698]
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
2001-12-11 15:57:53 -05:00
Bill Wendling
43c1f21316 [svn-r4691]
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.
2001-12-10 17:45:46 -05:00
Bill Wendling
39243d8b05 [svn-r4689]
Purpose:
	Feature Fix
Description:
	Added code so that it will actually output some of the timing
	measurements.
Platforms tested:
	Linux
2001-12-10 17:06:22 -05:00
Bill Wendling
af35ac0ec1 [svn-r4608]
Purpose:
    bug Fix
Description:
    Changed the code so that if parallel stuff isn't enabled, then we
    don't compile the parallel code.
Solution:
    Cleaned up the code and put #ifdef's around it checking for parallel
    flags.
Platforms tested:
    Linux
2001-11-15 17:46:32 -05:00
Albert Cheng
bb76b558e6 [svn-r4592] Purpose:
New addition
Description:
    Initial version of the Parallel I/O performance measurement program.
    Not fully implemented yet but checking them in before I may destroy
    them by accident.
    Don't run this in small file system (like AFS or eirene) since it
    generates gigabytes test files.
Platforms tested:
    modi4 64bits.  It compiled and ran but took a long time because
    the current test parametes are too "wild".
2001-11-07 10:28:33 -05:00