Muutke küpsiste eelistusi

High Performance Parallel I/O [Kõva köide]

Edited by , Edited by
  • Formaat: Hardback, 434 pages, kõrgus x laius: 234x156 mm, kaal: 970 g
  • Ilmumisaeg: 23-Oct-2014
  • Kirjastus: CRC Press Inc
  • ISBN-10: 1466582340
  • ISBN-13: 9781466582347
Teised raamatud teemal:
  • Formaat: Hardback, 434 pages, kõrgus x laius: 234x156 mm, kaal: 970 g
  • Ilmumisaeg: 23-Oct-2014
  • Kirjastus: CRC Press Inc
  • ISBN-10: 1466582340
  • ISBN-13: 9781466582347
Teised raamatud teemal:
"Gain Critical Insight into the Parallel I/O EcosystemParallel I/O is an integral component of modern high performance computing (HPC), especially in storing and processing very large datasets to facilitate scientific discovery. Revealing the state of the art in this field, High Performance Parallel I/O draws on insights from leading practitioners, researchers, software architects, developers, and scientists who shed light on the parallel I/O ecosystem.The first part of the book explains how large-scale HPC facilities scope, configure, and operate systems, with an emphasis on choices of I/O hardware, middleware, and applications. The book then traverses up the I/O software stack. The second part covers the file system layer and the third part discusses middleware (such as MPIIO and PLFS) and user-facing libraries (such as Parallel-NetCDF, HDF5, ADIOS, and GLEAN). Delving into real-world scientific applications that use the parallel I/O infrastructure, the fourth part presents case studies from particle-in-cell, stochastic, finite volume, and direct numerical simulations. The fifth part gives an overview of various profiling and benchmarking tools used by practitioners. The final part of the book addresses the implications of current trends in HPC on parallel I/O in the exascale world"--



Gain Critical Insight into the Parallel I/O Ecosystem

Parallel I/O is an integral component of modern high performance computing (HPC), especially in storing and processing very large datasets to facilitate scientific discovery. Revealing the state of the art in this field,High Performance Parallel I/O draws on insights from leading practitioners, researchers, software architects, developers, and scientists who shed light on the parallel I/O ecosystem.

The first part of the book explains how large-scale HPC facilities scope, configure, and operate systems, with an emphasis on choices of I/O hardware, middleware, and applications. The book then traverses up the I/O software stack. The second part covers the file system layer and the third part discusses middleware (such as MPIIO and PLFS) and user-facing libraries (such as Parallel-NetCDF, HDF5, ADIOS, and GLEAN).

Delving into real-world scientific applications that use the parallel I/O infrastructure, the fourth part presents case studies from particle-in-cell, stochastic, finite volume, and direct numerical simulations. The fifth part gives an overview of various profiling and benchmarking tools used by practitioners. The final part of the book addresses the implications of current trends in HPC on parallel I/O in the exascale world.

Arvustused

"While I/O has become a major performance bottleneck in HPC, no single reference allows practitioners to understand the complex interactions between applications, libraries, and file systems. This book fills this major gap; written by the best experts in the field, it is likely to become a necessary reference to anybody who wants to understand I/O on HPC platforms." -Marc Snir, University of Illinois at Urbana-Champaign "It is...remarkable to have a broad overview of past, present, and future technologies, with a focus on real problems and clear solutions..." -Computing Reviews

List of Figures xix
List of Tables xxv
Foreword xxvii
Preface xxix
Acknowledgments xxxi
Contributors xxxix
I Parallel I/O in Practice 1(88)
1 Parallel I/O at HPC Facilities
3(2)
Galen Shipman
2 National Energy Research Scientific Computing Center
5(12)
Jason Hick
2.1 HPC at NERSC
5(1)
2.2 I/O Hardware
6(6)
2.2.1 Local Scratch File Systems
7(2)
2.2.2 Storage Network
9(1)
2.2.3 The NERSC Global File Systems
10(1)
2.2.4 Archival Storage
11(1)
2.3 Workflows, Workloads, and Applications
12(2)
2.4 Conclusion
14(3)
3 National Center for Supercomputing Applications
17(16)
William Kramer
Michelle Butler
Gregory Bauer
Kalyana Chadalavada
Celso Mendes
3.1 The Blue Waters Computational and Analysis Subsystems
18(1)
3.2 Blue Waters On-line Storage Subsystem
19(5)
3.2.1 On-line Storage Performance
22(2)
3.3 Blue Waters Near-line Storage Subsystem and External Server Subsystem
24(4)
3.4 Blue Waters Applications
28(3)
3.4.1 Science and Engineering Team Application I/O Requirements
29(2)
3.5 Conclusion
31(2)
4 Argonne Leadership Computing Facility
33(18)
William E. Allcock
Kevin Harms
4.1 HPC at ALCF
34(1)
4.1.1 Intrepid
34(1)
4.1.2 Mira
35(1)
4.2 Overview of I/O at ALCF
35(1)
4.3 I/O Hardware
36(5)
4.3.1 Intrepid: ALCF Blue Gene/P System
37(2)
4.3.2 Mira: ALCF Blue Gene/Q System
39(2)
4.4 I/O Software
41(3)
4.4.1 GPFS
41(1)
4.4.1.1 Configuration
41(1)
4.4.1.2 Tuning
42(1)
4.4.1.3 Reliability
42(1)
4.4.2 PVFS
43(1)
4.4.3 Libraries
43(1)
4.5 Workloads/Applications
44(3)
4.5.1 Case Studies
46(1)
4.6 Future I/O Plans at ALCF
47(4)
5 Livermore Computing Center
51(14)
Richard Hedges
Blaise Barney
5.1 Introduction
51(2)
5.2 The Lustre® Parallel File System: Early Developments
53(1)
5.3 Sequoia, Lustre® 2.0, and ZFS
54(1)
5.4 IBM Blue Gene Systems
55(2)
5.5 Sequoia File System Hardware
57(2)
5.6 Experience with ZFS-Based Lustre® and Sequoia in Production
59(1)
5.7 Sequoia I/O in Practice
60(3)
5.7.1 General Remarks
60(1)
5.7.2 Recommendations to Application Developers
61(1)
5.7.3 SILO: LLNL's I/O Library
62(1)
5.7.4 Scalable Checkpoint/Restart
62(1)
5.8 Conclusion
63(2)
6 Los Alamos National Laboratory
65(14)
Gary Grider
6.1 HPC at LANL
65(1)
6.1.1 Facilities and Environments
66(1)
6.2 I/O Hardware
66(6)
6.2.1 Storage Environment
67(1)
6.2.2 Storage Area Networks
67(1)
6.2.3 Global Parallel Scratch File Systems
68(2)
6.2.4 The Curse of the Burst: Economic Thinking behind Burst Buffers
70(2)
6.3 Workloads and Applications
72(3)
6.3.1 Applications and Their Use of Storage
72(1)
6.3.2 I/O Patterns and the Quest for Performance without Giving Up
73(1)
6.3.3 Defeating N-to-1 Strided
73(2)
6.4 Conclusion
75(4)
7 Texas Advanced Computing Center
79(10)
Karl W. Schulz
7.1 HPC at TACC
79(1)
7.2 I/O Hardware
80(6)
7.2.1 Performance
82(2)
7.2.2 Parallel File Systems—A Shared Resource
84(2)
7.3 Conclusion
86(3)
II File Systems 89(60)
8 Lustre®
91(16)
Eric Barton
Andreas Dilger
8.1 Motivation
91(1)
8.2 Design and Architecture
92(11)
8.2.1 Overview
92(1)
8.2.2 Networking
93(1)
8.2.2.1 LNet
93(1)
8.2.2.2 RPC
94(2)
8.2.3 Distributed Lock Manager
96(1)
8.2.4 Back-end Storage
97(1)
8.2.5 Metadata Server
98(1)
8.2.6 Object Storage Server
99(1)
8.2.7 Management Server
100(1)
8.2.8 Client
100(2)
8.2.9 Recovery
102(1)
8.3 Deployment and Usage
103(1)
8.4 Conclusion
104(3)
9 GPFS
107(12)
Dean Hildebrand
Frank Schmuck
9.1 Motivation
107(1)
9.2 Design and Architecture
108(8)
9.2.1 Shared Storage Model
108(2)
9.2.2 Design Overview
110(1)
9.2.3 Distributed Locking and Metadata Management
111(1)
9.2.3.1 The Distributed Lock Manager
111(1)
9.2.3.2 Metadata Management
112(1)
9.2.3.3 Concurrent Directory Updates
113(1)
9.2.4 Advanced Data Management
114(1)
9.2.4.1 GPFS Native RAID
114(1)
9.2.4.2 Information Lifecycle Management
114(1)
9.2.4.3 Wide-Area Caching and Replication
115(1)
9.3 Deployment and Usage
116(1)
9.3.1 Usage Examples
117(1)
9.4 Conclusion
117(2)
10 OrangeFS
119(16)
Walt Ligon
Boyd Wilson
10.1 Motivation
120(1)
10.1.1 PVFS1
120(1)
10.1.2 PVFS2
121(1)
10.1.3 OrangeFS
121(1)
10.2 Design and Architecture
121(10)
10.2.1 Overview
121(1)
10.2.2 OrangeFS Request Protocol
122(1)
10.2.3 File Structure Representation
122(1)
10.2.3.1 Trove
123(1)
10.2.4 Bulk Messaging Interface
123(1)
10.2.5 Flows
124(1)
10.2.6 Job Layer
124(1)
10.2.7 Request State Machines
124(1)
10.2.8 Distributed File Metadata
125(1)
10.2.9 Distributed Directory Entry Metadata
125(1)
10.2.10 Capability-Based Security
126(1)
10.2.11 Clients and Interfaces
126(4)
10.2.12 Features under Development
130(1)
10.3 Deployment
131(2)
10.3.1 Cluster Shared Scratch
132(1)
10.3.2 Cluster Node Scratch
132(1)
10.3.3 Amazon Web Services
133(1)
10.4 Conclusion
133(2)
11 OneFS
135(14)
Nick Kirsch
11.1 Motivation
135(1)
11.2 Design/Architecture
136(2)
11.2.1 Isilon Node
137(1)
11.3 Network
138(1)
11.3.1 Back-End Network
138(1)
11.3.2 Front-End Network
138(1)
11.3.3 Complete Cluster View
139(1)
11.4 OneFS Software Overview
139(3)
11.4.1 Operating System
139(1)
11.4.2 File System Structure
139(2)
11.4.3 Data Layout
141(1)
11.5 Data Protection
142(3)
11.5.1 Power Loss
142(1)
11.5.2 Scalable Rebuild
142(1)
11.5.3 Virtual Hot Spare
143(1)
11.5.4 N + M Data Protection
143(2)
11.6 Dynamic Scale/Scale on Demand
145(2)
11.6.1 Performance and Capacity
145(2)
11.7 Conclusion
147(2)
III I/O Libraries 149(76)
12 I/O Libraries: Past, Present and Future
151(4)
Mike Folk
12.1 Motivation
151(1)
12.2 A Recent History of I/O Libraries, by Example
152(1)
12.3 What Is the Future of I/O Libraries?
153(2)
13 MPI-IO
155(14)
Wei-keng Liao
Rajeev Thakur
13.1 Introduction
155(2)
13.1.1 MPI-IO Background
156(1)
13.1.2 Parallel I/O in Practice
156(1)
13.2 Using MPI for Simple I/O
157(2)
13.2.1 Three Ways of File Access
158(1)
13.2.2 Blocking and Nonblocking I/O
159(1)
13.3 File Access with User Intent
159(6)
13.3.1 Independent I/O
160(1)
13.3.2 MPI File View
161(2)
13.3.3 Collective I/O
163(2)
13.4 MPI-IO Hints
165(1)
13.5 Conclusions
165(4)
14 PLFS: Software-Defined Storage for HP C
169(8)
John Bent
14.1 Motivation
169(1)
14.2 Design/Architecture
170(3)
14.2.1 PLFS Shared File Mode
170(2)
14.2.2 PLFS Flat File Mode
172(1)
14.2.3 PLFS Small File Mode
172(1)
14.3 Deployment, Usage, and Applications
173(2)
14.3.1 Burst Buffers
174(1)
14.3.2 Cloud File Systems for HPC
174(1)
14.4 Conclusion
175(2)
15 Parallel-Net CDF
177(8)
Rob Latham
15.1 Motivation
177(2)
15.2 History and Background
179(1)
15.3 Design and Architecture
179(1)
15.4 Deployment and Usage
180(1)
15.5 Additional Features
181(1)
15.6 Conclusion
182(1)
15.7 Additional Resources
183(2)
16 HDF5
185(18)
Quincey Koziol
Russ Rew
Mark Howison
Prabhat
Marc Poinot
16.1 Motivation
186(1)
16.2 History and Background
186(1)
16.3 Design and Architecture
187(5)
16.3.1 The HDF5 Data Model
188(3)
16.3.2 The HDF5 Library
191(1)
16.3.3 The HDF5 File Format
192(1)
16.4 Usage and Applications
192(7)
16.4.1 netCDF-4
193(1)
16.4.1.1 Design
193(1)
16.4.1.2 Applications
193(1)
16.4.2 H5hut
194(1)
16.4.2.1 Design
194(1)
16.4.2.2 Applications
194(1)
16.4.3 CGNS
195(1)
16.4.3.1 Design
195(1)
16.4.3.2 Applications
197(2)
16.5 Conclusion
199(1)
16.6 Additional Resources
199(4)
17 ADIOS
203(12)
Norbert Podhorszki
Scott Klasky
Qing Liu
Yuan Tian
Manish Parashar
Karsten Schwan
Matthew Wolf
Sriram Lakshminarasimhan
17.1 Motivation
203(1)
17.2 Design and Architecture
204(1)
17.3 Deployment, Usage, and Applications
205(6)
17.3.1 Checkpoint/Restart
205(1)
17.3.2 Analysis
206(1)
17.3.3 Code Coupling
207(1)
17.3.4 Visualization
208(2)
17.3.5 Data Reduction
210(1)
17.3.6 Deployment
210(1)
17.4 Conclusion
211(4)
18 GLEAN
215(10)
Venkatram Vishwanath
Huy Bui
Mark Hereld
Michael E. Papka
18.1 Motivation
215(1)
18.2 Design and Architecture
216(4)
18.2.1 Exploiting Network Topology and Reduced Synchronization for I/O
217(1)
18.2.2 Leveraging Application Data Semantics
218(1)
18.2.3 Asynchronous Data Staging
219(1)
18.2.4 Compression and Subfiling
219(1)
18.3 Deployment, Usage, and Applications
220(3)
18.3.1 Checkpoint, Restart, and Analysis I/O for HACC Cosmology
220(1)
18.3.2 Data Staging for FLASH Astrophysics
221(1)
18.3.3 Co-Visualization for PHASTA CFD Simulation
222(1)
18.4 Conclusion
223(2)
IV I/O Case Studies 225(52)
19 Parallel I/O for a Trillion-Particle Plasma Physics Simulation
227(12)
Surendra Byna
Prabhat
Homa Karimabadi
William Daughton
19.1 Abstract
227(1)
19.2 Science Use Case
228(1)
19.3 I/O Challenges
229(1)
19.4 Software and Hardware
229(1)
19.4.1 Hardware Platform
229(1)
19.4.2 Software Setup
230(1)
19.5 Parallel I/O in VPIC
230(2)
19.6 Performance
232(4)
19.6.1 Tuning Write Performance
232(1)
19.6.2 HDF5 Tuning
233(1)
19.6.3 Tuning Lustre File System and MPI-I/O Parameters
233(3)
19.7 Conclusion
236(1)
19.8 Acknowledgments
236(3)
20 Stochastic Simulation Data Management
239(10)
Dimitris Servis
20.1 Background
239(1)
20.2 Science Use Case
240(1)
20.3 The I/O Challenge
241(2)
20.4 Using HDF5 in Industrial Stochastic Simulations
243(2)
20.4.1 Data Model and Versioning
244(1)
20.4.2 VFL and Filters
244(1)
20.4.3 Encryption
244(1)
20.4.4 Robustness
244(1)
20.4.5 Fragmentation
245(1)
20.4.6 Process and Thread Synchronization
245(1)
20.5 A (Near) Efficient Architecture Using HDF5
245(2)
20.6 Performance
247(1)
20.7 Conclusion
248(1)
21 Silo: A General-Purpose API and Scientific Database
249(10)
Mark Miller
21.1 Canonical Use Case: ALE3D Restart and Visit Visualization Workflow
250(1)
21.2 Software, Hardware, and Performance
251(1)
21.3 MIF and SSF Scalable I/O Paradigms
252(4)
21.4 Successes with HDF5 as Middleware
256(1)
21.5 Conclusion
257(2)
22 Scaling Up Parallel I/O in S3D to 100-K Cores with ADIOS
259(12)
Scott Klasky
Gary Liu
Hasan Abbasi
Norbert Podhorszki
Jackie Chen
Hemanth Kolla
22.1 Science Use Case
259(1)
22.2 Software and Hardware
260(9)
22.2.1 ADIOS-BP
261(1)
22.2.2 Staged Write Method
262(1)
22.2.3 Group-Based Hierarchical I/O Control
262(1)
22.2.4 Aggregation and Subfiling
263(3)
22.2.5 Index Generation
266(1)
22.2.6 Staged Read Method
266(1)
22.2.7 Staged Opens
266(1)
22.2.8 Chunking
267(1)
22.2.9 Limitations
268(1)
22.3 Conclusion
269(2)
23 In-Transit Processing: Data Analysis Using Burst Buffers
271(6)
Christopher Mitchell
David Bonnie
Jonathan Woodring
23.1 Motivation
271(2)
23.2 Design/Architecture
273(1)
23.3 Systems Prototypes Related to Burst Buffers
274(1)
23.4 Conclusion
275(2)
V I/O Profiling Tools 277(46)
24 Overview of I/O Benchmarking
279(10)
Katie Antypas
Yushu Yao
24.1 Introduction
279(1)
24.2 I/O Benchmarking
280(3)
24.3 Why Profile I/O in Scientific Applications?
283(1)
24.4 Brief Introduction to I/O Profilers
283(1)
24.5 I/O Profiling at NERSC
284(3)
24.5.1 Application Profiling Case Studies
284(1)
24.5.1.1 Checkpointing Too Frequently
285(1)
24.5.1.2 Reading Small Input Files from Every Rank
286(1)
24.5.1.3 Using the Wrong File System
286(1)
24.6 Conclusion
287(2)
25 TAU
289(8)
Sameer Shende
Allen D. Malony
25.1 Abstract
289(1)
25.2 Features
290(2)
25.2.1 MPI-IO Instrumentation
291(1)
25.2.2 Runtime Preloading of Instrumented Library
291(1)
25.2.3 Linker-Based Instrumentation
291(1)
25.2.4 Instrumented External I/O Libraries
292(1)
25.3 Success Stories
292(2)
25.4 Conclusion
294(3)
26 Integrated Performance Monitoring
297(12)
David Skinner
26.1 Design and Features
297(4)
26.2 Success Stories
301(4)
26.2.1 Chombo's ftruncate
301(1)
26.2.2 MADBENCH and File System Health
302(1)
26.2.3 Buffer Size
303(1)
26.2.4 HPC Workload Studies
304(1)
26.3 Conclusion
305(4)
27 Darshan
309(8)
Philip Carns
27.1 Features
309(2)
27.2 Success Stories
311(2)
27.3 Conclusion
313(4)
28 Iota
317(6)
Mark Howison
Prabhat
Surendra Byna
28.1 Features
317(1)
28.2 Success Stories
318(3)
28.3 Conclusion
321(2)
VI Future Trends 323(62)
29 Parallel Computing Trends for the Coming Decade
325(8)
John Shalf
29.1 Technology Scaling
326(3)
29.1.1 Classical Scaling Period (1965-2004)
326(1)
29.1.2 End of Classical Scaling (2004)
326(2)
29.1.3 Toward Data-Centric Computing (2014-2022)
328(1)
29.2 Implications for the Future of Storage Systems
329(2)
29.3 Conclusion
331(2)
30 Storage Models: Past, Present, and Future
333(12)
Dries Kimpe
Robert Ross
30.1 The POSIX Era
334(1)
30.2 The Current HPC Storage Model
335(3)
30.2.1 The POSIX HPC I/O Extensions
335(2)
30.2.2 MPI-IO
337(1)
30.2.3 Object Storage Model
337(1)
30.3 Post POSIX
338(3)
30.3.1 Prior Work
338(1)
30.3.2 Object Abstractions in HPC
339(2)
30.3.3 Namespaces
341(1)
30.4 Conclusion
341(4)
31 Resilience
345(8)
Gary Grider
Nathan DeBardeleben
31.1 Present
346(2)
31.1.1 Getting the Correct Answer
347(1)
31.2 Future
348(2)
31.3 Conclusion
350(3)
32 Multi/Many Core
353(10)
Ramon Nou
Toni Cortes
Stelios Mavridis
Yannis Sfakianakis
Angelos Bilas
32.1 Introduction
353(1)
32.2 Storage I/O at Present
354(1)
32.3 Storage I/O in the Near Future
355(1)
32.4 Challenges and Solutions
356(4)
32.4.1 NUMA Effects
356(1)
32.4.2 Improving I/O Caching Efficiency
357(2)
32.4.3 Dynamic I/O Scheduler Selection
359(1)
32.5 Conclusion
360(3)
33 Storage Networks and Interconnects
363(6)
Parks Fields
Benjamin McClelland
33.1 Current State of Technology
363(2)
33.2 Future Directions
365(1)
33.3 Challenges and Solutions
366(1)
33.4 Conclusion
367(2)
34 Power Consumption
369(16)
Matthew L. Curry
H. Lee Ward
David Martinez
Jill Gemmill
Jay Harris
Gary Grider
Anna Maria Bailey
34.1 Introduction
370(1)
34.2 Power Use in Recent and Current Supercomputers
370(7)
34.2.1 Red Sky
371(1)
34.2.2 Cielo
371(2)
34.2.3 Palmetto
373(1)
34.2.4 Dawn
374(1)
34.2.5 Overall Survey Results
374(3)
34.2.6 Extrapolation to Exascale
377(1)
34.3 How I/O Changes at Exascale
377(3)
34.3.1 Introducing More Asynchrony in the File System
378(1)
34.3.1.1 The Burst Buffer
378(1)
34.3.1.2 Sirocco: A File System for Heterogeneous Media
378(1)
34.3.2 Guarding against Single-Node Failures and Soft Errors
379(1)
34.4 Conclusion
380(5)
Index 385
Prabhat leads the NERSC Data and Analytics Services Group at Lawrence Berkeley National Laboratory. His main research interests include Big Data analytics, scientific data management, parallel I/O, HPC, and scientific visualization. He is also interested in atmospheric science and climate change.





Quincey Koziol is the director of core software development and HPC at The HDF Group, where he leads the HDF5 software project. His research interests include HPC, scientific data storage, and software engineering and management.