Commit Graph

127 Commits (e31b2dcec1f6feeda0933837680d908a64ff7c8d)

Author SHA1 Message Date
Julian M. Kunkel e31b2dcec1 Added missing file. 2018-07-07 11:57:04 +01:00
Julian M. Kunkel 21b8cca8cf IOR library version. 2018-07-07 11:42:21 +01:00
Julian M. Kunkel a6bfa0f94b MDTest library option.
Moved core functionality / variables used by both implementations to utilities
2018-07-07 10:42:48 +01:00
Julian M. Kunkel bcaea2a39f Replaced getopt with an alternative version (on some machines optind was broken). 2018-07-07 08:41:33 +01:00
Adam Moody 156a514c8b open file in RDWR when using write + checkWrite 2018-05-16 16:52:20 -07:00
Adam Moody 43cc47b7f0 use MPI_COMM_SELF when opening file to get file size in MPIIO 2018-05-16 12:31:23 -07:00
Li Dongyang 6ba22a19e4 Add mmap as a new AIORI backend
It shares the create/open/delete/set_version/get_file_size
functions with POSIX backend.
The mmap backend also supports fsync and fsyncPerWrite options,
and it will use msync() instead and fsync().

Signed-off-by: Li Dongyang <dongyangli@ddn.com>
2018-05-11 12:13:42 +10:00
Glenn K. Lockwood 7a371cfeda
Merge pull request #46 from lidongyang/iops
Add OPs result columns back
2018-04-23 13:12:43 -07:00
Glenn K. Lockwood a80cc44fb1 fixes #47 2018-04-23 13:10:04 -07:00
Li Dongyang 0d2c9e5451 Add OPs result columns back
Signed-off-by: Li Dongyang <dongyangli@ddn.com>
2018-04-18 14:24:42 +10:00
Enno Zickler 16c8ef6a23 Doc: src comments for getOffsetArray functions 2018-03-15 21:52:34 +01:00
Enno Zickler d5507955af Doc: Initial setup for Sphinx and Doxygen 2018-03-15 21:52:10 +01:00
Jean-Yves VET 6d3edaffc8 Implement an access function for MPIIO backend
Context: Some file systems require a prefix in the path.
The POSIX 'access' call fails and consequently files are
never deleted.

This patch implements an access function in the MPIIO
backend using MPI_File_open. Prefixes can now be parsed
by ROMIO.
2018-03-01 11:34:49 +01:00
Glenn K. Lockwood 9a200097a5
Merge pull request #31 from ezickler/O_DIRECTfix
Fix O_DIRECT option
2018-01-25 09:32:00 -08:00
Enno Zickler 87fe8485a7 Fix O_DIRECT option
The O_DIRECT option was not working as set_o_direct_flag() were moved to
utilities.c but there the  #define _GNU_SOURCE where missing. This lead
to not the Waring "cannot use O_DIRECT".
2018-01-25 10:51:35 +01:00
Alexander Hück 3ef16c3030 initialize path variable correctly 2018-01-24 19:26:53 +01:00
Glenn K. Lockwood e6e0527d72
Merge pull request #17 from lwh1990/master
Fix compatibility issues with pnetcdf > 1.7 (prior versions continue to work as well)
2017-12-12 10:58:14 -08:00
Glenn K. Lockwood 3887668bda
Merge pull request #19 from VI4IO/master
Various bug fixes and code cleanup
2017-12-12 10:56:09 -08:00
Julian M. Kunkel cdc93da3a4 Check for command line slight naming change. 2017-12-09 17:24:31 +01:00
Julian M. Kunkel 93355314de Adjusted command line checks for recent changes in semantics for readCheck/writeCheck. 2017-12-09 17:22:58 +01:00
Julian M. Kunkel 1f6d062f7f Bugfix #22 2017-12-09 11:52:13 +01:00
Glenn K. Lockwood 10e2b2efa2 make all references to API name case-insensitive (fix for 6ba323b) 2017-12-04 15:20:31 -08:00
Julian M. Kunkel c9d6c2316e Bugfix for self referencing sprintf #20
Backmerge from IOR fork.
2017-11-30 12:01:19 +01:00
Julian M. Kunkel 2c224e0ee8 Bugfix for #14, storeFileOffset=1 2017-11-30 11:56:26 +01:00
Julian Kunkel b67c5ce62c Bugfix for #14
WriteCheck did not work properly due to shifting of patterns.
It is possible that one buffer could be saved by refactoring the code properly.
2017-11-29 10:17:02 +01:00
Julian Kunkel 6436165edb For debugging of issues: added IOR_FAKE_TASK_PER_NODES env variable to set tasksPerNode. 2017-11-29 09:54:22 +01:00
VinsonLeung d1f9e9aee3
change Pnetcdf IO funtion
change Pnetcdf IO function which can avoid incompatible MPI datatype problem
2017-11-22 23:20:22 -06:00
VinsonLeung f8e6cd033a
change MPI_BYTE to MPI_SIGNED_CHAR
From Pnetcdf 1.7, the MPI datatype corresponding to NC_BYTE  is change from MPI_BYTE to MPI_SIGNED_CHAR. If not change, running IOR with NCMPI will cause a fatal error as below:
ERROR in aiori-NCMPI.c (line 287): cannot write to data set.
ERROR: NetCDF: Not a valid data type or _FillValue type mismatch.
2017-11-20 13:56:36 -06:00
VinsonLeung fd0e99e544
fix a bug when compile with ncmpi enabled
The file "src/aiori-NCMPI.c" uses numTasksWorld as the process which is declared in "src/ior.h".   In "src/mdtest.c", NCMPI backend will be called if IOR configured with ncmpi enabled but numTasksWorld was not defined in "src/mdtest.c". So it will cause a compiler error like below:
mdtest-aiori-NCMPI.o: In function `NCMPI_Xfer':
/home/parallels/Documents/ior/src/aiori-NCMPI.c:272: undefined reference to `numTasksWorld'
2017-11-19 16:38:12 -06:00
Glenn K. Lockwood 3aa1f4c9b7
Merge pull request #11 from VI4IO/master
StoneWalling with WearOutPhase
2017-11-15 00:09:22 -07:00
John Bent 34cb63c1b7 Fixed the bug in the read check code 2017-10-25 07:57:50 -06:00
Julian M. Kunkel 0916d432cd Removed short option parsing. 2017-10-21 12:02:03 +02:00
Julian M. Kunkel 072eb452fd Stonewalling wear-out only with long options. 2017-10-21 11:59:09 +02:00
Julian Kunkel 96e75cc832 stoneWallingWearOutIterations allows to read data back using the same number of iterations as used for the write with stoneWallingWearOut. 2017-10-20 18:14:06 +02:00
Julian Kunkel aa0b8c92d2 New stonewalling option to create a wear out phase.
Once a process hits the stonewall (timelimit), they all figure out the maximum pair read/written.
Each proces continues to read/write until the maximum number of pairs is reached, this simulates the wear out.
2017-10-20 18:02:24 +02:00
Nathan Hjelm 6ba323bb69 aiori: accept any case when selecting backend
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-10-19 15:29:27 -06:00
Nathan Hjelm 0c9921dc0d aiori: remove support for plfs
Remove support for plfs by recommendation of its original author.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-10-19 15:29:18 -06:00
Nathan Hjelm 4dc0081628 First cut at using the IOR backends for mdtest
This commit makes changes to the AIORI backends to add support for
abstacting statfs, mkdir, rmdir, stat, and access. These new
abstractions are used by a modified mdtest. Some changes:

 - Require C99. Its 2017 and most compilers now support C11. The
   benefits of using C99 include subobject naming (for aiori backend
   structs), and fixed size integers (uint64_t). There is no reason to
   use the non-standard long long type.

 - Moved some of the aiori code into aiori.c so it can be used by both
   mdtest and ior.

 - Code cleanup of mdtest. This is mostly due to the usage of the IOR
   backends rather than a mess of #if code.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-10-19 15:29:12 -06:00
Nathan Hjelm aa3fb396ea Add mdtest to the ior repository
This version is from LLNL/mdtest@49f3f047c2

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-10-19 15:18:51 -06:00
Alfred Torrez 2541bfea7b Merge pull request #10 from ThinkParQ/master
add support for tuning BeeGFS parameters
2017-10-19 13:40:41 -06:00
Oliver Steffen 738190bd79 add support for tuning BeeGFS parameters 2017-10-04 14:14:36 +02:00
Julian Kunkel 2ce37ae90a Changed the semantics of -R to compare the data with the expected data buffer.
Previously -R did run another read phase and compared if the output of both reads is identical.
-R now checks if the data matches the expected signature (as set using -G <NUMBER>), so reads data once and then
directly compares the read data with the expected buffer.
This allows to first run IOR with a write only phase, then later with a read phase that checks if the data still is correct.
Since the read can be repeated multiple times, there is no need for the old -R semantics.
2017-09-27 18:45:47 +02:00
Glenn K. Lockwood 9457bb958b explicitly disable O_CREAT and O_EXCL when doing read-only test 2017-04-28 13:01:30 -07:00
Rob Latham a4a5576858 housekeeping: remove unused array
the "report an error" macros defined an array that was not used.
2015-12-07 15:40:43 -06:00
Rob Latham e371f0c605 more tolerant of whitepace in hintfile
If a hintfile contains e.g. cb_buffer_size = 1234, IOR will try to set
the hint "cb_buffer_size " (note trailing space), a hint that no MPI
implementation actually supports.
2015-12-07 15:40:01 -06:00
Brett Kettering 73c1183d8c Merge pull request #2 from roblatham00/memory_cleanup
assorted memory leak cleanups
2015-12-07 14:20:43 -07:00
Rob Latham d2a8aa0d2d assorted memory leak cleanups
tidy up a few stray memory allocations.  Note: these changes make
HumanReadable no longer re-entrant.
2015-12-07 15:10:30 -06:00
Rob Latham 343ad076a3 clean up MPI resources
IOR was leaking a hint structure in MPI-IO case, two groups in
common code, and when we get the info member from the file we were
losing our reference to the hints we just passed in.
2015-12-07 14:54:22 -06:00
Blair Crossman f297c7b0d5 Moved the calls to XferBuffersSetup() and XferBuffersFree to TestIoSys()
This makes it so that the buffers are only allocated once per test instead
of once per transfer.  This also removes initial buffer set-up from the
timing window.

Added a new struct into ior.h IOR_io_buffers for the buffer, checkbuffer, and readcheckbuffer
so only one pointer needed to be passed to XferBuffersSetup(), XferBuffersFree(),
and WriteOrRead().

Changed the logic in XferBuffersSetup() and XferBuffersFree() to not be transfer
dependent.  If a test includes a write check or read check the checkBuffer
 and readcheckBuffer will be created once per test in TestIoSys().  The
argument now taken by both function has changed from the access type to
a pointer to IOR_param_t.

Changed WriteOrRead to take as an additional  parameter
the IOR_io_buffers struct, since it was no longer creating those
buffers.
2015-05-27 10:24:52 -06:00
Blair Crossman 08d14e986d Added an uncompressible data packet to IOR.
Changed how the -l option works.  Now you choose the type of datapacket
-l i  			incompressible data packets
-l incompressible  	incompressible data packets
-l timestamp 		timestamped data packets
-l t			timestamped data packets
-l offset		offset data packets
-l o			offset data packets

-G option now is either the seed for the incompressible random packets
   or the timestamp, depending on the input to the -l option.

-G will no long timestamp packets on its own without the additon of -l timestamp or -l t

I kept shorter versions of the options for the sake of typing sanity.
2015-05-21 12:05:56 -06:00