Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
HTML
<div style="background-color: yellow; border: 2px solid red; margin: 4px; padding: 2px; font-weight: bold; text-align: center;">
The Delta documentation has moved to <a href="https://docs.ncsa.illinois.edu/systems/delta/">https://docs.ncsa.illinois.edu/systems/delta/</a>. Please update any bookmarks you may have.
<br>
Click in the link above if you are not automatically redirected in 5 seconds.
</br>
</div>
<meta http-equiv="refresh" content="5; URL='https://docs.ncsa.illinois.edu/systems/delta/'" />


Table of Contents

What is DDN IME?

Infinite Memory Engine (IME®) is a DDN solution for fast data tiering between the compute nodes and a file system in a high performance computing environment.

Conceptually the storage subsystem looks like the following

DDN IME from IME Developer GuideImage Added

© DDN 2020

How to use IME

The preferred way to use the Delta IME is as a read-cache for frequently read data and as a write/read cache for small file io.

It is possible to use exiting utilities and applications with files residing or created on /ime. Performance will be equal to or better than using /scratch directly for i/o to files. 

Warning
titleIME and metadata

IME performance for directory/metadata operations is slower than /scratch (it is not the place to extract or copy millions of files).

...

  Do those operations (rsync, tar, etc) in /scratch.

To get additional performance from the IME software features without changing IO routines, use the posix2ime library (LD_PRELOAD'd), to intercept standard Posix IO calls with IME API calls.  We have included a module posix2ime that does this for you (read more about posix2ime below).

Info
titleshared namespace: /ime , /scratch

The

...

/scratch and /ime file systems share the same name space. The rm command will delete files on both file

...

systems

You can purge the contents of files from the cache , but not the presence of the file. Please see below. 

There are some important caveats when using the /ime file system for something other than a read-cache. See section 2.2 Data Consistency Model in the developer guide document .

Users must maintain close-to-open consistency when multiple clients access the same files. This requirement guarantees that any other client will see the latest changes made by one client as soon as the client opens the file. A client must synchronize all file data and metadata changes when it closes a file and unconditionally retrieve a file’s attributes when it opens a file, ignoring any information it may have cached about the file. IME implements an enhanced close-to-open consistency model, allowing IME to be lock free.

IME commands

Please see the man page for ime-ctl or the attached developer guide document for details.

...

The posix2ime module is available and loading it will LD_PRELOAD the library for your shell or batch script and all subsequent commands.  The library is described at: DDNStorage/posix_2_ime: POSIX to IME Native API (github.com)

Info
titleposix2ime requires dedicated nodes
At this time, use of the posix2ime library requires dedicated ( #SBATCH --exclusive ) nodes for your job script or srun command.


Code Block
titleposix2ime work in progress
linenumberstrue
#!/bin/bash 
#SBATCH --mem=64g
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=4
#SBATCH --exclusive
#SBATCH --cpus-per-task=16
#SBATCH --partition=cpu
#SBATCH --account=bbka-delta-cpu
#SBATCH --time=00:15:00
#SBATCH --job-name=posix2ime-ior-dedicated
 
Code Block
languagebash
titleposix2ime batch example: IOR
# in progress, not yet tested/complete, use 4x4 node layout for starters

BFS_DIR=/scratch/bbka/arnoldg/ime_example
IME_DIR=/ime/bbka/arnoldg/ime_example
SAMPLE_INPUT_TAR_BUNDLE=$BFS_DIR/include.tar
FILE=myinputfile
 
# Rundo themany-files followingoperations in /scratch, withoutbefore any
# of the IME ctl , just using scratch
using ime: cd $BFS_DIR
time; tar tvf $SAMPLE_INPUT_TAR_BUNDLE  # would use xvf to extract
time srun iorxvf inputbundle.tar ...

# compare to IME workflow:

# bring the scratch directory into IME
time ime-ctl --recursive --block --prestage $BFS$IME_DIR

# run the job/workflow in IME
# do serialized commands (avoiding many-files types of operations)
cd $IME_DIR
time tar tvfstat $SAMPLE_INPUT_TAR_BUNDLEFILE

# Use posix2ime for large block and/or parallel i/o 
module load posix2ime
time srun ior .../u/arnoldg/ior/src/ior -F -b64m
# turn off posix2ime
unset LD_PRELOAD  # turns off posix2ime module

# synchronize IME back theout IMEto andthe Scratch directory ( $BFS_DIR )
time ime-ctl --recursive --block --sync $IME_DIR

exit



Attachments

Attachments