Skip to content
/ yo Public

Minimalist Parallel I/O toolkit for scientific I/O over Parallel File System

License

GPL-3.0, MPL-2.0 licenses found

Licenses found

GPL-3.0
GPL3-LICENSE.md
MPL-2.0
MPL2-LICENSE.md
Notifications You must be signed in to change notification settings

adevress/yo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YO

SUMMARY

YO is a minimalist tool to maximize I/O throughput on top of Parallel File System (e.g GPFS, Lustre, BeeGFS, etc.... )

YO parallelise I/O for large sequential read/write pattern of few operations : file copy, sequential big I/O, numpy I/O )

YO is delivered with yocp: a parallel version of the cp tool

USAGE

yocp [src_file] [dst_file] 

EXAMPLE

YOCP example

ls -lh $SHARED_HOME/test.big
-rwxr-xr-x 1 X X 3,0G  2 août  09:27 test.big



time cp $SHARED_HOME/test.big $SCRATCH/test.big2

real	0m33.622s
user	0m0.017s
sys	0m5.152s

time yocp $SHARED_HOME/test.big $SCRATCH/test.big3

real	0m22.094s
user	0m0.033s
sys	0m4.902s

numpyio example

import yo.numpyio as npio
import numpy as np

z = np.zeros([3,3])

npio.save("/tmp/zero.npy", z)

## saved properly

r = npio.load("/tmp/zero.npy")

ALGORITHM

YO uses simple multi-threaded parallel I/O using a multiple of the DFS block size

DEPENDENCIES

  • C++11 compatible compiler
  • Boost > 1.41

Embedded component : hadoken

CONFIGURATION

ENVIRONMENT VARIABLES

  • YO_BLOCK_SIZE : size of the individual block to read in bytes

  • YO_NUM_THREADS : number of working I/O threads

LICENSE

Command line tools: GPLv3 Shared Library, Static library and python modules: MPL2

About

Minimalist Parallel I/O toolkit for scientific I/O over Parallel File System

Resources

License

GPL-3.0, MPL-2.0 licenses found

Licenses found

GPL-3.0
GPL3-LICENSE.md
MPL-2.0
MPL2-LICENSE.md

Stars

Watchers

Forks

Packages

No packages published