Commit Graph

155 Commits (f5ecb9d9748b0ee0e302f277f176130bedf418e3)

Author SHA1 Message Date
Julian M. Kunkel c702a98376 Strict prototypes for AIORI 2019-12-22 11:21:40 +00:00
Julian M. Kunkel 73c5c0efc2 Fix for collective operations by Wolfgang Szoecs #210.
It does have performance implications but is only active if needed.
2019-12-19 13:43:38 +00:00
Jean-Yves VET be48206e5f Fix compilation warnings 2019-12-16 14:51:10 +01:00
Julian Kunkel b334c3f6fd
Merge pull request #192 from daos-stack/daos-devel
fix -R option to do proper data verification
2019-10-16 16:20:43 +01:00
Mohamad Chaarawi dc82a1bf2f ior -R should memset the buffer being read, otherwise a read that does nothing
will report success in the data verification phase.

Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-10-16 14:54:00 +00:00
Julian M. Kunkel a69a5916cf Hotfix for ior -F -u 2019-10-16 09:42:10 +01:00
Glenn K. Lockwood f40b0744ff
Merge pull request #187 from daos-stack/daos-devel
IOR: Add latency and IOPS numbers to each iteration.
2019-10-02 13:09:26 -07:00
Julian Kunkel 604598ab2f
Merge pull request #182 from jschwartz-cray/fix-181
Fix #181.
2019-09-19 16:53:41 +01:00
Mohamad Chaarawi 12284ae04a Add latency and iops numbers to each iteration.
- Latency reported is computed by taking the average latency of
  all ops from a single task, then taking the minimum of that
  between all tasks.

- IOPS is computed by taking the total number of ops across all
  tasks divided by the total access time to execute those ops.

Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-09-10 18:49:32 +00:00
Mohamad Chaarawi e9dd5fe15e Merge branch 'master' into daos-devel
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>

Conflicts:
	configure.ac
	src/Makefile.am
	src/aiori-MPIIO.c
	src/aiori.c
	src/aiori.h
	src/ior.c
	src/mdtest.c
	src/option.c
2019-09-09 19:55:56 +00:00
Julian Kunkel 0921556456
Merge pull request #184 from hpc/feature-aiori
Feature aiori
2019-09-09 15:20:43 +01:00
Julian M. Kunkel c83edfe39b Extracted check function into aiori. #24. #177 2019-09-01 15:59:52 +01:00
Julian Kunkel 151102ff8f
Merge pull request #176 from otatebe/master
abstract I/O interface for Gfarm file system
2019-09-01 15:51:16 +01:00
Julian Kunkel 47695aea49
Merge pull request #180 from jschwartz-cray/fix-179
Fix #179.
2019-08-31 10:32:41 +01:00
Josh Schwartz 0e952f0f8c Fix #181.
On systems where numTasks is not evenly divisible by 'tasksPerNode' we were
seeing some nodes reading multiple files while others read none after
reordering.

Commonly all nodes have the same number of tasks but there is nothing
requiring that to be the case.  Imagine having 64 tasks running against 4
nodes which can run 20 tasks each.  Here you get three groups of 20 and one
group of 4.  On this sytem nodes running in the group of 4 were previously
getting tasksPerNode of 4 which meant they reordered tasks differently than
the nodes which got tasksPerNode of 20.

The key to fixing this is ensuring that every node reorders tasks the same
way, which means ensuring they all use the same input values.  Obviously on
systems where the number of tasks per node is inconsistent the reordering will
also be inconsistent (some tasks may end up on the same node, or not as far
separated as desired, etc.) but at least this way you'll always end up with a
1:1 reordering.

- Renamed nodes/nodeCount to numNodes
- Renamed tasksPerNode to numTasksOnNode0
- Ensured that numTasksOnNode0 will always have the same value regardless of
  which node you're on
- Removed inconsistently used globals numTasksWorld and tasksPerNode and
  replaced with per-test params equivalents
- Added utility functions for setting these values:
  - numNodes -> GetNumNodes
  - numTasks -> GetNumTasks
  - numTasksOnNode0 -> GetNumNodesOnTask0
- Improved MPI_VERSION < 3 logic for GetNumNodes so it works when numTasks is
  not evenly divisible by numTasksOnNode0
- Left 'nodes' and 'tasksPerNode' in output alone to not break compatibility
- Allowed command-line params to override numTasks, numNodes, and
  numTasksOnNode0 but default to using the MPI-calculated values
2019-08-30 16:45:03 -06:00
Josh Schwartz 4c3d96bfed Fix #179.
-u (uniqueDir) will once again use the full file path specified by the
client instead of truncating it.  This was caused by a broken sprintf
which was trying to read/write overlapping buffers.

From the glibc sprintf() documentation:
"The behavior of this function is undefined if copying takes place
between objects that overlap"
2019-08-30 15:31:23 -06:00
Josh Schwartz 0bd979637e Added some extra debug including ERRF, WARNF, and MPI_CHECKF format string macros. 2019-08-30 15:11:25 -06:00
Osamu Tatebe b1b66962ac incorrect warning 2019-08-02 13:03:59 +09:00
Julian M. Kunkel 6c0fadc2a9 Include performance when stonewall is hit to output. 2019-08-01 17:20:01 +01:00
John Bent 3890b71b54 Fixed issues and followed suggestions from Glenn's review of the PR 2019-08-01 09:42:03 +09:00
John Bent 0ffec67d2b Following Julian's suggestion about better naming 2019-07-28 10:25:42 -06:00
John Bent 629ff810b7 Got IOR shifting to work regardless of whether node/task mapping is round-robin or contiguous 2019-07-27 15:27:20 -06:00
Mohamad Chaarawi 262d35d87e - Merge branch 'master' into daos-devel
- fix bugs with cont destroy.
- add destroy option to DFS driver
- share pool and container handle with DFS driver, and allow multi rank access

Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>

Conflicts:
	src/ior.c
	src/mdtest.c
	src/option.c
	src/parse_options.c
2019-06-24 21:26:15 +00:00
Julian M. Kunkel 21405ed924 Updated MMap module to option parser. 2019-03-27 22:32:59 +00:00
Julian M. Kunkel 20e960d020 Support the setting of module-specific options per test. 2019-03-27 20:04:48 +00:00
Mohamad Chaarawi 39eca1bb08 add DAOS_Access routine to check if a container exists before deleting it.
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-03-14 21:17:37 +00:00
Mohamad Chaarawi 2c87b5e0f5 Merge remote-tracking branch 'upstream/master' into daos
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>

Conflicts:
	src/aiori.c
	src/aiori.h
	src/ior.c
	src/mdtest-main.c
	src/mdtest.c
	src/option.c
2019-01-24 00:31:12 +00:00
Julian M. Kunkel 5a8071fbd8 GNU99 extracted _XOPEN_SOURCE to config.h. 2018-10-28 18:34:22 +00:00
Julian Kunkel 3a4f2ea33e
Merge pull request #101 from glennklockwood/issue93-squashed
compile correctly with -std=c99
2018-10-28 18:16:52 +00:00
Julian Kunkel f7dc084f32
Merge pull request #103 from DDNStorage/ime_mkdir_rmdir
IME: add support of mkdir/rmdir into the IME backend
2018-10-16 14:34:26 +01:00
Julian M. Kunkel 3b5f4fc002 Bugfix JSON output for multiple processes 2018-10-11 18:59:12 +01:00
Sylvain Didelot e6bd9ad3b3 common: call mkdir/access syscalls defined in backends
mkdir/access syscalls used in PrependDir() should call their equivalent
implemented by the backend.
2018-10-09 17:55:58 +02:00
Glenn K. Lockwood 87c5c9ef04 compile correctly with -std=c99
This patch enables correct compilation on both MacOS and Linux using only
POSIX.1-2008-compliant C with XSI extensions.

Specifically, POSIX.1-2008 is the minimum version because we use strdup(3);
explicit XSI is required to expose putenv from glibc.
2018-10-08 13:47:28 -07:00
Julian M. Kunkel 7045295a86 Replaced usleep to nanosleep. 2018-10-06 17:30:00 +01:00
Glenn K. Lockwood a0ef65e61f stop the segfault when an invalid api is specified in configfile 2018-10-05 23:29:21 -07:00
Julian M. Kunkel 1f1e56c363 Usleep feature added according to Nathan's suggestions. 2018-09-30 10:01:21 +01:00
Jean-Yves VET 7a7655e959 Fix erroneous write bandwidth with stonewalling
Context: write and read results from the same iteration
use the same length value in Bytes. When stonewalling is
used the size variates depending on the performance of
the access. This leads to wrong max bandwidths reported
for writes as shown in the following example:

    write     10052      ...
    read      9910       ...
    write     10022      ...
    read      9880       ...
    write     10052      ...
    read      9894       ...
    Max Write: 9371.43 MiB/sec (9826.66 MB/sec)
    Max Read:  9910.48 MiB/sec (10391.89 MB/sec)

This patch makes IOR separate variables used for read
and write tests.
2018-09-21 11:43:33 +02:00
Jean-Yves VET 8c727fa99c Simplify and factorize a few functions
This patch factorizes some duplicated code. It also
simplifies the way times are stored to prepare next
patch.
2018-09-21 11:38:44 +02:00
Jean-Yves VET 2bcaea564e Initialize only the required backends
Context: IOR initializes all available backends. If one
backend fails to initialize IOR cannot be used.

This patch makes IOR initialize only the backends
which will be used. The initialization is done after
that the parameters are checked so that the help message
can still be dispayed is something goes wrong.
2018-09-18 19:24:29 +02:00
Mohamad Chaarawi 2f713e947d fix bug in driver name check for DAOS.
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2018-09-12 22:53:42 +00:00
Mohamad Chaarawi 14d67c19d9 fix DAOS plugin options passing.
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2018-08-29 22:25:48 +00:00
Mohamad Chaarawi 46ff4e26be Merge remote branch 'daos-stack/daos'
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>

Conflicts:
	configure.ac
	src/Makefile.am
	src/aiori.c
	src/aiori.h
	src/ior.c
	src/mdtest.c
	src/parse_options.c
2018-08-29 21:14:19 +00:00
Julian M. Kunkel c1f3f485ec Bugfix #79 2018-08-29 21:07:34 +01:00
Mohamad Chaarawi f4b03efd72 Add the DAOS ior driver.
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2018-08-27 17:22:38 +00:00
Mohamad Chaarawi 5fb850c810 - update the DFS driver to latest DFS API.
- update cmd line options to add DAOS Pool and Container uuid and SVCL
- Add init/finalize backend functions.

Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2018-08-23 21:58:53 +00:00
Shane Snyder fefefa002d make sure to allow fsyncs in RADOS 2018-08-14 17:08:04 -05:00
Jean-Yves VET df34f024ba Fix warnings reported at compilation time
This patch fixes most of the warnings caused
by unused variables and assignments from incompatible
type.
2018-08-09 13:04:52 +02:00
Julian M. Kunkel f55761d5d2 Refactored results structure to AoS; allowed to keep results per repeat. 2018-07-15 19:38:17 +01:00
Julian M. Kunkel c0657866fd Minor fixes for stonewalling options. 2018-07-14 12:22:36 +01:00
Julian M. Kunkel ac7600d662 Unit-test with automake for library version. Minor fix for library version. 2018-07-14 10:27:31 +01:00