I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O...
Transcript of I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O...
![Page 1: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/1.jpg)
I/O Best Practices
Quincey KoziolData Analytics Service
Group
![Page 2: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/2.jpg)
Outline
•––––
•–––
![Page 3: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/3.jpg)
df=pd.read_csv(“/scratch/data.csv”)
I/O Stack: Moving Data To Disk
I/O Hardware
Application
Parallel File System
High-Level I/O LibraryI/O Middleware
I/O Forwarding
Productive Interface
Home: /global/homes/j/jialinScratch: /global/cscratch1/sd/jialinProject: /project/projectdirs/dasrepo
![Page 4: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/4.jpg)
Productive I/O Interface: h5py
![Page 5: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/5.jpg)
Coding Effort
![Page 6: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/6.jpg)
h5py vs. HDF5 Performance
![Page 7: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/7.jpg)
High Level I/O Libraries
➢➢➢➢
➢➢➢➢
![Page 8: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/8.jpg)
High Level I/O Libraries: HDF5
MPI_Init(&argc, &argv);
fapl_id = H5Pcreate(H5P_FILE_ACCESS);H5Pset_fapl_mpio(fapl_id, comm, info);file_id = H5Fcreate(FNAME,…, fapl_id);space_id = H5Screate_simple(…);dset_id = H5Dcreate(file_id, DNAME, H5T_NATIVE_INT, space_id,…);xf_id = H5Pcreate(H5P_DATASET_XFER);H5Pset_dxpl_mpio(xf_id, H5FD_MPIO_COLLECTIVE);status = H5Dwrite(dset_id, H5T_NATIVE_INT, …, xf_id);
MPI_Finalize();
➢
![Page 9: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/9.jpg)
I/O Middleware
➢➢
➢➢
➢➢
➢➢➢➢➢➢
![Page 10: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/10.jpg)
Independent and Collective I/O
➢➢
➢➢➢
➢
![Page 11: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/11.jpg)
Independent and Collective I/O
➢➢
➢➢
➢
![Page 12: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/12.jpg)
I/O Pattern Analysis
● ●●●●
How to describe your I/O● Number of Processes● Number of Files● Size per file● Frequency of I/O● Size per I/O● Read or Write or ?● Shared File or not● I/O Libraries ● ...
What is your I/O Pattern?● Contiguous or Non-contiguous?● (i.e. Sequential or Random?)
![Page 13: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/13.jpg)
I/O Profiling
•••
••••
••
![Page 14: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/14.jpg)
Success Story: Athena’s I/O
darshan-job-summary.pl darshan_log output.pdf
![Page 15: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/15.jpg)
What’s Next
•––––
•
I/O Libraries
![Page 16: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/16.jpg)
Burst Buffer Architecture
➢
➢➢
Burst Buffer: http://www.nersc.gov/users/computational-systems/cori/burst-buffer/
Burst Buffer
Lustre
Nodes 288 248
Capacity (PB) 1.8 28
![Page 17: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/17.jpg)
Cori's Data Paths
➢➢➢
![Page 18: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/18.jpg)
Cori's Data Paths
➢
➢
![Page 19: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/19.jpg)
➢
➢
Cori's Data Paths
![Page 20: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/20.jpg)
Cori's Data Paths
➢
![Page 21: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/21.jpg)
Cori's Data Paths
➢➢ …
![Page 22: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/22.jpg)
➢➢➢
Time taken to extract 1000 random spectra
From one HDF5 file
From one FITS file
From Lustre 44.1s 160.3sFrom BB 1.3s 44.0sSpeedup: 33x 3.6x
H5Boss
![Page 23: I/O Best Practices - NERSCHigh Level I/O Libraries ... Read or Write or ? Shared File or not I/O Libraries ... What is your I/O Pattern? Contiguous or Non-contiguous? (i.e. Sequential](https://reader034.fdocuments.in/reader034/viewer/2022051815/603e15e426347621f2169fc5/html5/thumbnails/23.jpg)
Thank you.