Commit Graph

485 Commits (0e9176932836bb11f75fe212ca6c94f7a83d052a)

Author SHA1 Message Date
Mohamad Chaarawi e08314f571 update DFS and DAOS drivers to new aiori module interface.
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2020-06-11 17:26:58 +00:00
Julian M. Kunkel eb2cd27fac Removed offset from IOR structure. 2020-06-10 17:47:07 +01:00
Sven Breuner c828a0f32c mdtest: use correct number of bytes for posix_memalign of read buffer
Fixes a typo in initial posix_memalign commit for DirectIO support.
2020-06-03 01:22:44 +03:00
Sven Breuner 3eb488939d mdtest: allocate aligned buffers to support DirectIO 2020-06-03 00:30:38 +03:00
Mohamad Chaarawi 3623f3b8bd DFS: allow multiple IO phases when ior_run() is called
- init/fini can be made multiple times
- reset tunables on fini so they can change on a re-init

Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2020-05-31 16:20:58 +00:00
Julian M. Kunkel 8fa8ef0c02 Call backend statfs() instead of only POSIX-specific variant. 2020-05-31 13:30:31 +01:00
Julian M. Kunkel 5663593919 Moved generic IOR information to "hint" structure. Backends should only use the "hints" if set. 2020-05-31 12:50:03 +01:00
Julian M. Kunkel 8098c3740a Refactored fd into aiori_fd_t for type safety. 2020-05-31 12:12:49 +01:00
Julian M. Kunkel c4c19d3245 Fixed type typo in name. 2020-05-31 11:58:34 +01:00
Julian M. Kunkel 294b8891e6 Created dummy option type to provide type safety. Fixed various call issues for options. 2020-05-31 11:50:15 +01:00
Julian M. Kunkel e91b79cea0 Moved Lustre/GPFS/BeeGFS options into POSIX backend. Needs testing. Additional minor fixes. 2020-05-30 20:09:37 +01:00
Julian M. Kunkel 930ccdc68d Updated HDF5 to new module specification. 2020-05-30 19:01:20 +01:00
Julian M. Kunkel aa9e2ad815 MDTest updated for AIORI changes. 2020-05-30 18:30:26 +01:00
Julian M. Kunkel 1890aaaeb0 Started to move IOR specific knowledge out of AIORI.
For now, and compatibility, IOR options can still be set/internally accessed using the backends init_xfer_options.
This should be removed in the long run to strip away this dependency.
2020-05-30 18:19:48 +01:00
Julian M. Kunkel 2de4210311 Provide a string option parser function. 2020-05-29 16:05:42 +01:00
Mark Nelson edba70e99c aiori-CEPHFS: don't just unmount on close, release cmount too.
Signed-off-by: Mark Nelson <mnelson@redhat.com>
2020-05-28 20:42:26 -05:00
Mark Nelson efc6d49832 src/aiori-CEPHFS: Add option checks before init
Signed-off-by: Mark Nelson <mnelson@redhat.com>
2020-05-28 19:52:45 -05:00
Mark Nelson 8abb7a62dc src/aiori-CEPHFS: Add sync
Signed-off-by: Mark Nelson <mnelson@redhat.com>
2020-05-28 22:28:16 +00:00
Julian M. Kunkel 153b7aa60f Critical bugfix for ior API (used e.g. in IO500)
TODO: Check potential issue when using IOR scripts with different backends.
2020-05-28 21:18:44 +01:00
Julian M. Kunkel 4eb0ebec55 Add dummy sync to dummy backend. 2020-05-28 21:13:45 +01:00
Julian M. Kunkel 8c92a1b2ff Merge branch 'master' of github.com:hpc/ior 2020-05-28 20:12:06 +01:00
Julian M. Kunkel f97090a86b Typo fix. 2020-05-28 20:11:52 +01:00
Mohamad Chaarawi 28fae361f4 dfs: add DFS sync call
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2020-05-28 18:34:31 +00:00
Julian M. Kunkel 4b417ef1f3 IOR shouldn't fail if it cannot determine file system sizes but warn. Functionality should presumably be moved into AIORI backends. 2020-05-28 19:05:41 +01:00
Julian M. Kunkel a536649abb Clarified some issues in the test framework and added example test. #219 2020-05-20 17:46:35 +01:00
Julian M. Kunkel 48eb1880e9 For better testing: Fixed fake tasks per node to work with MPI3, added environment variable to fake num nodes. 2020-04-21 10:35:53 +01:00
Julian Kunkel 8bc9a12f80
Merge pull request #221 from daos-stack/mschaara/dfs_l2g
DFS driver update to share DFS mount on init
2020-04-14 10:13:55 +01:00
Mohamad Chaarawi 1b8848ccbc Use l2g-g2l to share the dfs mount instead of opening by each rank.
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2020-04-13 19:59:56 +00:00
Jean-Yves VET a21137be3e Display outlier host names
Display host names when using the -j argument (outlierThreshold) so
that IOR could help to better identify slow nodes:

WARNING: for client02, task 6, write elapsed transfer time is 65.738326
2020-03-17 16:31:56 +01:00
Glenn K. Lockwood 657ff8ad8f
Merge pull request #217 from markhpc/wip-aiori-cephfs
[RFC] src/aiori-CEPHFS: New libcephfs backend
2020-03-10 12:29:24 -07:00
Mark Nelson 9649a0c520 src/aiori-CEPHFS: New libcephfs backend
Signed-off-by: Mark Nelson <mnelson@redhat.com>
2020-03-10 10:19:41 -05:00
Julian M. Kunkel 9726aa0ce2 Bugfix API which doesn't set the AIORI backend. 2020-03-07 14:40:59 +00:00
Julian Kunkel f5ecb9d974
Merge pull request #215 from daos-stack/daos-devel
DAOS Driver: Update License & Align with 1.0 API changes
2020-02-26 19:13:48 +00:00
Mohamad Chaarawi 50a4ba0735 DAOS Driver: Update License & Align with 1.0 API changes
- License should inherit from IOR License.
- remove checksums from Array API
- add DFS dir oclass option

Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2020-02-26 18:53:51 +00:00
Julian Kunkel ec8d246b33
Merge pull request #214 from markhpc/wip-ior-rados-mark
src/aiori-RADOS: Remove Direct IO option check.
2020-02-26 09:06:54 +00:00
Mark Nelson e363713c07 src/aiori-RADOS: Remove Direct IO option check.
Signed-off-by: Mark Nelson <mnelson@redhat.com>
2020-02-25 18:13:29 -06:00
Julian M. Kunkel c702a98376 Strict prototypes for AIORI 2019-12-22 11:21:40 +00:00
Julian M. Kunkel 6de5cdc6f9 Fixed wrong usage of platform, fixed printf output. 2019-12-21 14:14:27 +00:00
Julian M. Kunkel 240d5fae79 Trivial fix to ensure all functions are prototypes. 2019-12-21 11:19:02 +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 0666875df3 aiori-IME: Add support of sync and mknod in IME backend
This patch adds the support of sync (flush client page cache
for all opened files) and mknod in the IME backend.
2019-12-17 14:51:21 +01:00
Glenn K. Lockwood 7a2d307c74
Merge pull request #208 from jyvet/mknod
Fix confusing output of mknod
2019-12-16 12:38:13 -08:00
Jean-Yves VET 9da36abaca Fix confusing output of mknod
Context: mknod does not return a file descriptor.
2019-12-16 14:55:26 +01:00
Jean-Yves VET be48206e5f Fix compilation warnings 2019-12-16 14:51:10 +01:00
Julian Kunkel 3a34b2efb7
Merge pull request #200 from daos-stack/daos-devel
DAOS driver update
2019-11-13 10:38:28 +00:00
Mohamad Chaarawi acfd4673cc We only need to add dirs to the Hash in the DFS driver.
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-11-13 00:09:03 +00:00
Adrian Jackson ddac5c8dbf
Merge pull request #3 from hpc/master
Bring fork up to date
2019-11-12 14:20:53 +00:00
Robert LeBlanc 47199e28dd Not sure why iops and latency are left out of the JSON job output. It is really useful information.
Signed-off by: Robert LeBlanc <robert@leblancnet.us>
2019-11-11 23:16:01 +00:00
Afrian Jackson 9c0926ef2a Moving fsync pmdk functionalty from persist to drain on the advice of the PMDK developers 2019-11-07 20:17:55 +00:00
Mohamad Chaarawi fbff9b6fb2 add DFS prefix option
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-11-07 18:01:07 +00:00
Adrian Jackson c24b2f156a
Merge pull request #2 from hpc/master
Merging in latest master changes
2019-11-05 15:00:47 +00:00
Afrian Jackson b4c85798bd Tidying up PMDK backend 2019-11-05 14:39:31 +00:00
Afrian Jackson 46c5d4e78d Adding in dual mount functionality for NVRAM within nodes 2019-11-05 14:37:54 +00:00
Afrian Jackson 817603f5d1 Updating copyright statement 2019-10-31 15:31:28 +00:00
Afrian Jackson fa25c31994 Adding PMDK functionality 2019-10-31 15:29:09 +00:00
Glenn K. Lockwood 3c7ac2df23
Merge pull request #196 from daos-stack/daos-devel
update DFS driver with new DAOS API changes.
2019-10-28 16:56:29 -07:00
Glenn K. Lockwood 4409082064
Merge pull request #188 from pkoutoupis/feature-global_default_dir_layout
Enable global default dir layout for subdirs in Lustre
2019-10-28 10:43:56 -07:00
Mohamad Chaarawi 92180e022d update DFS read/write APIs with new DAOS API changes
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-10-28 16:42:44 +00:00
jschwartz-cray ccba3b11e5
Merge branch 'master' into fix-194 2019-10-23 16:46:00 -06:00
Josh Schwartz 61333af822 Fix #194.
On previous versions of IOR (and most Linux CLI applications in general)
multiple flags can be combined such as -vvv to get verbose=3 rather than
having to specify each separately as -v -v -v.  This patch fixes this behavior.

It also fixes issues around handling of the verbose flag where the
output would never be printed as we were comparing verbose < VERBOSE_0
where verbose defaults to 0 and can only increase.
2019-10-23 16:17:37 -06: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
Petros Koutoupis b3ecd756ce Implemented AC_CHECK_HEADERS fix in style of #190 2019-09-30 04:25:59 -07:00
Mohamad Chaarawi 2aea04c8cb fix some compiler warnings.
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-09-21 22:43:20 +00:00
Mohamad Chaarawi fca0a62ccb update to new DAOS API for creating dfs containers.
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-09-21 22:05:54 +00: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 c58ba8ffb5 add break that was accidentally removed
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-09-10 14:11:55 +00:00
Mohamad Chaarawi fe9d76ddf3 fix segfault when no API is specified to mdtest
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-09-09 22:03:55 +00:00
Mohamad Chaarawi 73dbda09c6 remove printf added
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-09-09 20:19:42 +00:00
Mohamad Chaarawi 5622aabf46 missed Makefile.am update
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-09-09 20:14:12 +00:00
Mohamad Chaarawi d332d586bf remove uneeded code and doc
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-09-09 20:07:55 +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
Mohamad Chaarawi 57a16ddda8 - update debugging error checking in DFS.
- remove usleep() before daos_fini()
- fix README

Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-09-09 19:14:35 +00:00
Julian Kunkel 0921556456
Merge pull request #184 from hpc/feature-aiori
Feature aiori
2019-09-09 15:20:43 +01:00
Petros Koutoupis 36d13d3b97 Enable global default dir layout for subdirs in Lustre 2019-09-02 22:26:12 -07:00
Julian M. Kunkel c83edfe39b Extracted check function into aiori. #24. #177 2019-09-01 15:59:52 +01:00
Julian Kunkel ced9b0183f
Merge pull request #172 from hpc/fix-168
Fix #168
2019-09-01 15:51:44 +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 M. Kunkel e3db1759b2 Moded sync() to aiori backend. 2019-09-01 15:47:42 +01:00
Julian M. Kunkel 6de1ea3176 Merge branch 'feature-sync' into feature-aiori 2019-09-01 15:39:49 +01:00
Julian M. Kunkel 60a641f911 sync help corrected. 2019-09-01 15:29:12 +01:00
Julian M. Kunkel 10d3db1dc8 MDTest: fixing the memset() to account for the number of iterations. 2019-08-31 17:28:08 +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
Mohamad Chaarawi 32db1cd902 add timing for container close.
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-08-29 03:24:48 +00:00
Mohamad Chaarawi 93730771fd add some verbose messages on finalize routines for DAOS and DFS drivers.
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-08-28 17:01:51 +00:00
Julian M. Kunkel 4df051bf28 New option -Y to invoke the sync command. 2019-08-26 18:57:14 +01:00
Julian M. Kunkel a4068be551 Improved help for fsync. 2019-08-26 15:57:13 +01:00
Julian M. Kunkel 0d9f46e980 MDTest re-added the -Z option for compatibility (for now) and switched back behavior. 2019-08-15 16:49:46 +01:00
Julian M. Kunkel de3baf8861 MDTest: Document choice of 42. 2019-08-15 16:21:30 +01:00
Mohamad Chaarawi b3663bd29a add sleep depending on MPI rank to avoid all ranks calling daos_fini()
at once (issue with PSM2).

Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-08-14 13:32:51 +00:00
Mohamad Chaarawi 1320aa279c add some barriers before cont close and destroy to make sure all
ranks are done.

Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-08-12 16:04:20 +00:00
Mohamad Chaarawi 8cb878507e Add dfs chunk_size and oclass options.
update dfs_remove for API change.

Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-08-12 14:25:05 +00:00
Axel Huebl 70e8b13d1d
Fix Last Free 2019-08-04 18:27:20 -05:00
Julian Kunkel da5f091afc
Merge pull request #169 from ax3l/fix-singleRankHeapBufferOverflow
Fix: Heap Buffer Overflow
2019-08-03 09:20:15 +01:00