Commit Graph

36 Commits (87c5c9ef0463e1288059b5f7bfc7dd4100cee2e9)

Author SHA1 Message Date
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
Rob Latham 7d2464f733 HDF5: option to enable collective metadata
In HDF5-1.10 the library has an option to read and write the metadata of a file collectively.  One has to opt-in to this optimization with a property list but particularly at large scale it can have tremendous performance implications.

Further information:
- https://support.hdfgroup.org/HDF5/docNewFeatures/CollMDataIO/RFC-CollectiveMetadataReads.pdf
- https://support.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetAllCollMetadataOps
2018-09-20 11:12:08 -05:00
Rob Latham cb88c4c19a including lustre_user now deprecated
put in a configure test (same one used in ROMIO) in case someone's using
old Lustre client headers
2018-08-28 16:27:21 -05:00
Jean-Yves VET 44ce8e5aaf Add backend for DDN's Infinite Memory Engine (IME)
This patch adds the support of IME Native interface
as a new AIORI backend.
2018-08-07 11:41:07 +01:00
Julian M. Kunkel bd253cf058 Added compilation test for HDF5. 2018-07-14 11:23:43 +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
Julian M. Kunkel 19a0102181 Silencing makefile by default. 2018-07-14 06:50:55 +01:00
Julian Kunkel 060c47e80a
Merge branch 'testing' into rados-hacks 2018-07-12 15:53:04 +01:00
Shane Snyder 7981691a63 add a new AIORI backend for RADOS
inform aiori interface about RADOS backend

stubbed out aiori backend for rados

additions to get RADOS backend compiling/linking

first cut at rados create/open patha

make sure to return RADOS oid on open/create

implement rados xfer path for WRITE

refactor + implement getfilesize and close

remember to use read_op interface for stat

implement RADOS delete function

don't error in RADOS_Delete for now

implement RADOS set_version

handle open/create flags appropriately

cleanup RADOS error handling

implement read/readcheck/writecheck for RADOS

rados doesn't support directio

implement unsupported aiori ops for RADOS

implement RADOS access call

define rados types if no rados support
2018-07-12 09:36:49 -05: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
Julian M. Kunkel 2148f68d36 Allow to use README.md instead of README. 2018-07-06 22:42:46 +01: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
Ian Kirker 1dce7ffdb6 Hardens test for MPI
Previously, the configure script could fail to find an MPI
implementation but continue regardless. This alters the behaviour so
that the configure script fails if the check for MPI does.
2017-11-22 20:13:53 +00:00
Glenn K. Lockwood b0bffa0d0e fix for ac < 2.67; untested, but doesn't break newer autoconfs 2017-11-22 11:27:18 -08: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 77590f4e50 modernize configure
This commit modernizes the configury and ensures make dist
works.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-10-19 15:18:39 -06:00
Oliver Steffen 738190bd79 add support for tuning BeeGFS parameters 2017-10-04 14:14:36 +02:00
Glenn K. Lockwood 86c9ab7d1c add an explicit --without-gpfs for environments with incomplete libgpfs support 2017-04-28 09:12:41 -07:00
Rob Latham efac1520c3 Add gpfs libraries if needed
Commit aa604c1d38 introduced gpfs_fcntl
operations, depending if gpfs.h and gpfs_fcntl.h were found.  These
routines need the GPFS client library.  This configure check will bring
in libgpfs -- you will still need to set LDFLAGS and CPPFLAGS if gpfs is
installed in some non-default locaiton (as it is on Blue Gene).

fixes https://github.com/chaos/ior/issues/15
2015-12-07 15:30:58 -06:00
Jeff Inman 37738dab26 Numerous changes to file-modes, small build-tweaks, and a tweak to aiori-S3.c
(Only rank-0 should create the bucket, if it doesn't already exist.)

Prepping this for a push (as an experimental S3 build) to github.
2015-05-19 09:36:28 -06:00
Jeffrey Thornton Inman 2f066624f0 S3 with Multi-Part Upload for N:1 is working.
Testing on our EMC ViPR installation.  Therefore, we also have available
some EMC extensions.  For example, EMC supports a special "byte-range"
header-option ("Range: bytes=-1-") which allows appending to an object.
This is not needed for N:1 (where every write creates an independent part),
but is vital for N:N (where every write is considered an append, unless
"transfer-size" is the same as "block-size").

We also use a LANL-extended implementation of aws4c 0.5, which provides
some special features, and allows greater efficiency.  That is included in
this commit as a tarball.  Untar it somewhere else and build it, to produce
a library, which is linked with IOR.  (configure with --with-S3).

TBD: EMC also supports a simpler alternative to Multi-Part Upload, which
appears to have several advantages.  We'll add that in next, but wanted to
capture this as is, before I break it.
2014-10-27 13:29:44 -06:00
Jeff Inman 0be8973c0e Initial commit of the new aiori-HDFS module.
This provides an HDFS back-end, allowing IOR to exercise a Hadoop
Distributed File-System, plus corresponding changes throughout, to
integrate the new module into the build.  The commit compiles at LANL, but
hasn't been run yet.  We're currently waiting for some configuration on
machines that will eventually provide HDFS.  By default, configure ignores
the HDFS module.  You have to explicitly add --with-hdfs.
2014-08-13 17:02:43 -06:00
Rob Latham aa604c1d38 Teach IOR about GPFS hints (gpfs_fcntl)
GPFS supports a "gpfs_fcntl" method for hinting various things,
including "i'm about to write this block of data".  Let's see if, for
the cost of a few system calls, we can wrangle the GPFS locking system
into allowing concurrent access with less overhead. (new IOR parameter
gpfsHintAccess)

Also, drop all locks on a file immediately after open/creation in the
shared file case, since we know all processes will touch unique regions
of the file.  It may or may not be a good idea to release all file locks
after opening.  Processes will then have to re-acquire locks already
held.   (new IOR parameter gpfsReleaseToken)
2013-10-03 18:07:49 -07:00
Christopher J. Morrone 84264657fb Remove AC_FUNC_MALLOC from configure.ac
Removing AC_FUNC_MALLOC from configure.ac, to allow compilation
on BG/P systems.  This check can fail in cross-compilation environments,
which unnecessarily forces autoconf to require an rpl_malloc()
replacement for malloc().  We could implement the conditional addition
of rpl_malloc(), but removing AC_FUNC_MALLOC is a quite work-around.

fixes #4
2012-09-12 14:43:16 -07:00
Christopher J. Morrone 253941fc6c Fix "make dist" 2012-01-08 20:31:01 -08:00
Christopher J. Morrone edd3d1a038 Add autoconf version requirement 2011-11-29 13:09:54 -08:00
Christopher J. Morrone 7cbdd75e6c Add an --enable-caps configure option.
If you must have the binary named "IOR" in all caps, use
the --enable-caps configure option.
2011-11-09 17:38:34 -08:00
Christopher J. Morrone 3b250633cc Use autoconf to check for lustre 2011-11-09 14:14:14 -08:00
Christopher J. Morrone 29457fac9f Use autoconf to link against the math library. 2011-11-02 17:49:43 -07:00
Christopher J. Morrone 44dfa2d95c Move cbif to the contrib directory.
Also mark it "noinst" in automake.
2011-11-02 17:36:32 -07:00
Christopher J. Morrone ea7f987d80 Include the docs as "DATA" 2011-10-27 19:07:59 -07:00
Christopher J. Morrone 01c91e45d3 Make IOR get its version from a META file. 2011-10-27 18:46:30 -07:00
Christopher J. Morrone 08d5629302 Rename IOR.[ch] to ior.[ch]. I don't like CAPS. 2011-10-27 18:46:29 -07:00
Christopher J. Morrone ca832bb46e Give ior a more reasonable plugin system. 2011-10-27 18:46:18 -07:00
Christopher J. Morrone 02fda88fd0 Begin conversion to autoconf 2011-10-27 17:45:09 -07:00