Professional Documents
Culture Documents
May, 2014
Des Albert
Pre-sales Engineer
APMEA
Agenda
Solutions for Earth System Modelling
Experience with UM
Cray XC 30 Overview
Aries Interconnect
Network Topology
Performance & Benchmarks
Questions / Discussion
5/7/2014
NAVO
MeteoSwiss
NRL
5/7/2014
TerraMe
Laboratory
Cray Confidential
FMI
NAMEM
Mongolia
Testimonial
System Overview
5/7/2014
Cray Confidential
ECMWF UK
European Centre for Medium-Range Weather Forecasting
System Overview
The new Cray facility will help improve ECMWFs forecasting capabilities by providing high
performance computing to support:
Increased resolution and model enhancements.
Development of ensemble-based data assimilation methods in conjunction with the
Ensemble Prediction System.
Better representation of physical processes and further increased use of satellite
observation data.
Key acquisition criteria included:
Sustained performance
System functionality and reliability
Total cost of ownership
Ventus & Anemos
5/7/2014
Testimonial
Cray Confidential
5/7/2014
Cray Confidential
5/7/2014
Testimonial
System Overview
Blue Waters
Cray Confidential
5/7/2014
Cray Confidential
5/7/2014
Cray Confidential
10
Environmental risk
5/7/2014
Cray Confidential
11
5/7/2014
12
Fidelity / Resolution
Cray Confidential
13
5/7/2014
Cray Confidential
Slide 14
14
Climate Specialists Workshop
uses
Pre-exascale Development Algorithmic design for massive for
massive parallelism, resource constraints and robustness.
Today much of the effort is focused on the effective use of accelerators
Cray Confidential
15
Understanding
tornadoes and their
parent supercells
through ultra-high
resolution
simulation/analysis
Principal Investigator:
Robert Wilhelmson,
University of Illinois at
Urbana-Champaign.
Using petascale
computing capabilities
to address climate
change uncertainties
Principal Investigators:
Donald Wuebbles and
Xin-Zhong Liang,
University of Illinois at
Urbana-Champaign
Testing hypotheses
about climate prediction
at unprecedented
resolutions on the NSF
Blue Waters system
Principal Investigators:
Benjamin Kirtman,
University of Miami;
William Large, University
Corporation For
Atmospheric Research;
David Randall, Colorado
State University; Cristiana
Stan, Institute of Global
Environment and Society
Cray Confidential
16
5/7/2014
Cray Confidential
17
5/7/2014
Cray Confidential
18
Earth
Sciences
Auto/
Aero
Energy
Life
Sciences
Financial
Services
Storage/Data
Analysis
Computation
Computation
Analytics
Big Data
Supercomputing
Cray Supercomputing
20
Price/Performance/Watt
Flexible system configurations
Industry Standards Technologies
Manageability and Reliability
Modular Scalability
Application Scalability
HPC Optimized HW, SW & IP
Price/Performance
Roadmap Upgradability
Reliability/Availability/Serviceability
Manageable
Integrated with Crays HPC Cluster Software
Stack
Includes Crays Advanced Cluster Engine
Management software
Includes network, server, cluster and storage
management
Performance and Flexibility
22
Liquid-Cooled architecture
Uses warm water instead of chilled water
Directly cools the processor and memory
Uses low-pressure isolated secondary loop
Leak detection and prevention features
integrated with remote monitoring and
reporting
23
Adaptive
Supercomputing
Scalable
Performance
Comprehensive
HPC Integration
Flexible Processor
Options & Upgrades
Enhanced Aries
Interconnect
HW & Networking
Hybrid Systems
Global Network
Bandwidth
Adaptive Network
Routing
Advanced Adaptive
Programming Tools
HPC Development
Tools
SW Environment &
Partner Ecosystem
Storage
Reliability &
Resiliency
Cray Linux
25
26
Aries
Aries is the Cray custom
SerDes
30 optical network lanes
90 electrical network lanes
64 PCI Express lanes
27
Compute
Blade
4 Compute
Nodes
Chassis
Rank 1
Network
16 Compute
Blades
No Cables
64 Compute
Nodes
Group
Rank 2
Network
Passive
Electrical
Network
2 Cabinets
6 Chassis
384 Compute
Nodes
System
Rank 3
Network
Active Optical
Network
Hundreds of
Cabinets
Up to 10s of
thousands of
nodes
28
29
30
2014 Watts
900 Watt
275 cfm
Size:
Weight:
<40 lbm
31
32
Southbridge (2)
33
SPECIFICATIONS
Module power:
PDC max. power:
PCIe
Card
Slots
Riser
Assembly
225 Watt
275 cfm
Size:
Weight:
1650 Watts
35 lbs
Aries
34
35
37
38
2 Cabinet
Group
768 Sockets
6 backplanes
connected with
copper cables in a 2cabinet group:
Black Network
16 Aries connected
by backplane
Green Network
4 nodes
connect to a
single Aries
Active optical
cables interconnect
groups
Blue Network
39
Rank-1
PC Board
Rank-2
Passive CU
Rank-3
Active Optics
40
Copper
Connections
41
Minimal routes
between any two
nodes in a group
are just two hops
Non-minimal route
requires up to four
hops.
With adaptive routing
we select between
minimal and nonminimal paths based
on load
D
R
42
Group 0
Group 1
Group 2
Group 3
43
44
Performance
More than just a case of clever wiring, this
Simplicity
Implemented without external switches
No HBAs or separate NICs and Routers
Price/Performance
Dragonfly maximizes the use of backplanes
MPI Bandwidth
OSU MPI Multiple Bandwidth / Message Rate Test
12
10
Bandwidth (GB/s)
Aries
FDR
16
64
256
1K
4K
Message size (bytes)
16K
64K
256K
1M
4M
46
MPI Latency
OSU MPI Multi Latency Test
2.50
2.00
Latency (us)
Aries
FDR
1.50
1.00
0.50
0.00
16
64
Message size (bytes)
256
1K
47
Connectionless design
Benchmarks
49
MPI Bandwidths
18
Bandwidth (GBytes/sec)
16
pingpong
14
unidirectional
12
bidirectional
10
8
6
4
2
0
64
128
256
512
1K
2K
4K
8K
16K
32K
1M
MPI_Allreduce Latency
35
30
Time (microseconds)
25
20
Software
Aries CE
15
10
5
0
2000
4000
6000
8000
Number of Processes
10000
12000
51
16000
14000
12000
XE6 MC12 2.1GHz Gemini 1.1
GFLOP/s
10000
8000
IBM BG/L
Cascade SB8 2.6GHz
6000
4000
- Computation and halo exchange costs only
- http://www.mmm.ucar.edu/wrf/WG2/benchv3/
2000
0
0
5/7/2014
2000
4000
6000
8000
10000
Cores
12000
14000
16000
18000
20000
18.00
16.00
FDR IB Cluster
Cray XC30
14.00
FDR IB Cluster
12.00
10.00
Item
FDR IB Cluster
FDR IB Cluster
Cray XC30
Processor
Intel E5-2670
Intel E5-2670
Same
6.00
Compiler
Intel 13.1
Intel 13.1
Same
4.00
Compiler
Options
2.00
Topology
Dragonfly
0.00
MPI
Libraries
Intel 4.0
Intel 4.0
Cray MPICH2
6.0
Math
Libraries
Cray Libsci
12.1
OS
RHEL 6.2
RHEL 6.2
CLE 5.1
8.00
512
1024
1536
Cores
SC 2013
2048
53
1
1 1 1 1 1
1 1 1 1 1
1
1 1 1 1 1
1 1 1 1 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1 1 1 1 2
2 2 2 2 3
3
4 4 4 4 4
1 1 1 1 1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
2
1 1 1 1 1
2 2 2 2 2
3
4 4 4 4 4
2 2 2 2 2
2
1
2
3
4
2
2
1
2
3
4
2
2
1
2
3
4
2
2
1
2
3
4
2
2
1
3
3
4
2
2
1
3
3
4
2
2
2
3
4
4
2
2 2
2
3 3
4 4
4 4
2 2
2
2
3
4
4
2
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
2
2
3
4
4
4
3
2
3
4
4
4
3
2
3
4
4
4
3
2
3
4
4
4
3
2
3
4
4
4
3
2
3
4
4
4
3
2
3
4
4
4
3
2
3
4
4
4
1
2
3
4
4
4
1
2
3
4
4
4
1
2
3
4
4
4
1
2
3
4
4
4
1
2
3
4
4
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
1
2
3
4
2
4
3
1 4 3 3 3
3 1 2 1 3
3
4 3 2 4 3
1 1 2 4 1
1
3
2
3
4
3
3
4
3
4
3
4
2
2
4
2
1
4
1
3
4
4
2
4
3
3
4
4
3
2
2
4
2
4
2
2
3
4
1
3
4
1
3
3
3
3
1
1
1
4
4
4
2
1
1
4
1
3
4
1
4
2
1
4
2
4
4
3
1
4
2
4
1
2
4
4
3
4
3
2
1
3
3
1
3
3
2
1
2
4
4
2
1
1
4
2
2
3
4
2
1
2
1
1
2
3
1
3
2
1
1
1
3
3
3
1
3
4
4
1
2
1
2
2
4
1
2
1
4
1
2
4
2
2
1
2
1
4
3
2
2
2
1
2
2
2
1
1
2
2
3
2
2
2
3
1
1
2
4
4
1
1
4
1
4
2
2
4
2
4
3
1
1
1
4
1
2
4
4
1
3
4
3
4
4
1
4
2
1
2
2
2
1
4
2
1
1
2
3
3
1
2
2
2
1
1
1
1
3
3
4
2
2
4
4
1
2
2
1
1
3
2
1
3
1
4
1
4
1
2
1
3
2
1
4
4
1
4
1
1
1
2
4
1
4
1
3
3
1
2
2
3
2
4
4
4
2
4
3
4
3
2
4
2
3
3
1
2
4
2
2
3
3
4
1
4
3
1
2
4
2
1
4
4
1
4
4
3
4
2
3
1
4
4
3
2
2
4
4
3
2
3
2
2
2
4
1
3
4
3
1
4
3
3
1
1
3
4
3
1
4
4
3
4
3
2
1
2
3
1
1
4
4
3
1
1
1
3
1
1
4
4
2
2
3
2
3
4
4
1
4
2
3
3
1
1 1 1 1 1
1 1 1 1 1
1
2 2 2 2 2
2 2 2 2 2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1 1
1
1 1
2 2
2 2
2 2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
2
3 3 3 3 3
4 4 4 4 4
1
2 2 2 2 2
3 3 3 3 3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
3
4
4
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3 3
4
1 1
2 2
3 3
4 4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
4
2 2 2 2 2
3 3 3 3 3
3
3 3 3 3 3
4 4 4 4 4
4
2
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
4
1
2
3
3
3
3
1
2
3
3
3
3
1
2
3
3
3
3
1
2
3
3
3
3
1
2
3
3
3
3
1
2
3
3
4
3
1
2
3
3
4
3
1
2
3
3
4
3
1 1
2
3 3
3 3
4 4
3 3
1
2
3
3
4
3
1
2
3
3
4
3
1
2
3
3
4
3
1
2
3
3
4
3
1
2
3
3
4
3
1
2
3
3
4
3
1
2
3
3
4
3
1
2
3
3
4
3
1
2
3
3
4
3
1
2
3
3
4
3
1
2
3
3
4
3
1
3
3
3
4
3
1
3
3
3
4
3
1
3
3
3
4
3
1
3
3
3
4
3
1
3
3
3
4
3
1
3
3
3
4
3
1
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
4
2
3
3
3
4
4
3
4 3 1 2 1
1 2 3 2 1
2
1 1 1 1 1
3 3 4 2 4
3
1
4
2
1
3
4
4
3
2
3
2
2
2
1
2
1
1
1
4
2
2
3
2
4
3
2
3
4
4
2
3
4
2
4
3
3
4
4
4
4
2
3
3
4
3
2
1
1
4
3
2
1
3
3
3
3
3
1
4
3
3
3
4
4
3
4
2
3
4
2
4
3
3
2
4
1
3
1
4
2
2
1
1
1
1
4
2
2
3
3
2
4
1
4
4
4
4
2
1
3
3
1
2
4
2
4
1
3
4
4
3
1
4
2
4
1
2
3
4
2
3
2
3
4
2
4
1
3
1
2
2
3
2
2
1
2
2
2
4
1
4
4
1
3
1
2
2
1
2
4
1
4
1
1
3
1
3
1
2
2
1
2
4
2
2
2
2
3
3
1
1
1
1
2
3
1
2
4
3
1
4
3
1
4
4
2
4
2
2
3
1
1 4
2
4 2
1 4
3 2
4 2
4
4
2
3
2
1
3
4
4
2
3
2
2
4
3
3
4
1
1
1
1
3
3
4
3
4
2
2
3
2
2
2
4
2
1
2
1
4
3
1
1
4
4
4
3
3
4
2
2
2
2
4
2
3
3
4
4
1
1
4
4
4
4
2
2
2
3
1
1
3
2
2
4
2
1
3
2
2
2
3
2
4
2
4
4
1
2
2
3
3
4
3
1
2
1
3
4
2
1
4
3
1
1
1
4
4
1
1
3
1
4
3
4
3
2
3
2
4
2
1
2
1
3
2
1
1
3
2
2
3
3
1
2
3
4
1
1
3
3
4
3
3
2
3
4
3
1
1
3
4
2
2 2 2 2 2
2 2 2 2 2
2
2 2 2 2 2
2 2 2 2 2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
4
1 1 1 1 1
2 2 2 2 2
3
4 4 4 4 4
1 1 1 1 1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
4
1 1 1 1 1
3 3 3 3 3
1
3 3 3 3 3
2 2 2 2 2
4
1
3
1
3
2
4
1
3
1
3
2
4
1
3
1
3
2
4
1
3
1
3
2
4
1
3
3
3
2
4
1
3
3
3
2
4
1
3
3
3
4
4
1
1
3
3
4
4
4
1
3
3
4
4
4
1
3
3
4
4
4
1
3
3
4
4
4
1
3
3
4
4
4
1
3
3
4
4
4
1
3
3
4
4
4
1
3
3
4
4
4
1
3
3
4
4
4
1
3
3
4
4
4
1
3
1
4
4
4
1
3
1
4
4
4
1
3
1
4
4
4
1
3
1
4
4
4
1
3
1
4
4
2
1
3
1
4
4
2
1
3
1
4
4
2
1
3
1
2
4
2
1
3
1
2
4
2
1
3
1
2
4
2
1
3
1
2
4
2
1
3
1
2
4
2
1
3
1
2
4
3
1
3
2
2
4
3
1
3
2
2
4
3
1
3
2
2
4
3
1
3
2
2
4
3
1
3
2
2
4
3
1
3
2
2
4
3
1
3
2
2
4
3
1
3
2
2
4
3
1
3
2
2
4
3
1
3
2
2
4
3
1
3
2
2
4
3
1
3
2
2
4
3
1
3
2
4
4
3
1
3
2
4
4
3
1
3
2
4
4
3
1
3
2
4
4
3
1
3
4
4
4
3
1
3
4
4
4
3
1
3
4
4
4
3
1
3
4
4
4
3
1
3
4
4
4
3
1
3
4
4
4
3
1
3
4
4
4
3
1
3
2
4
1
3
1
3
2
4
1
3
1
3
2
4
1
3
1
3
2
4
1
3
1
3
2
4
1
3
1
3
2
4
4
3 1 3 1 4
3 1 4 2 3
4
4 2 2 3 2
3 3 1 4 1
2
1
1
3
4
4
2
1
4
3
1
1
1
1
3
2
2
1
1
3
2
2
4
4
3
2
3
1
2
4
3
3
4
3
2
1
4
2
1
3
4
3
1
3
4
3
4
3
2
4
2
3
2
3
2
1
4
4
1
1
2
4
3
2
4
1
2
4
3
4
3
2
3
2
4
2
2
2
2
2
4
3
3
2
2
1
4
3
2
1
1
1
4
3
4
3
2
2
2
4
3
4
1
4
4
4
2
2
2
3
2
2
3
1
1
4
3
3
4
1
2
3
4
2
3
1
4
1
3
4
4
1
1
3
4
2
3
3
3
2
4
4
1
4
1
4
4
2
4
4
3
4
1
1
4
1
3
2
2
1
1
1
3
2
2
1
1
4
2
4
1
4
1
3
3
1
2
3
4
2
4
3
1
4
4
1
1
2
3
4
2
2
2
3
2
1
4
1
2
4
3
1
1
4
1
4
1
3
1
2
1
1
3
3
3
1
3
1
2
4
4
4
1
1
4
2
1
1
4
3
1
4
4
2
4
2
2
2
2
3
3
1
4
2
3
4
1
2
3
4
3
4
3
1
1
2
3
4
3
1
1
2
1
3
1
2
4
4
4
1
3
2
3
1
2
4
4
1
1
2
1
2
3
4
1
2
4
3
3
1
3
2
2
1
1
1
1
2
3
3
4
4
1
1
1
4
4
1
3
1
4
2
1
2
1
2
2
2
3
1
1
1
2
2
2
4
1
4
4
2
4
2
3
2
2
3
1
1
1
3
4
3
4
3
3
3
3
2
3
3
4
1
1
1
2
3 3 3 3 3
3 3 3 3 3
3
3 3 3 3 3
3 3 3 3 3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
2
3 3 3 3 3
4 4 4 4 4
1
2 2 2 2 2
3 3 3 3 3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
4
4 4 4 4 4
3 3 3 3 3
3
1 1 2 4 4
4 4 4 2 2
4
4
3
3
4
2
4
4
3
1
4
2
4
4
3
1
4
2
4
4
3
1
4
2
4
4
3
1
1
2
4
4
3
1
1
2
4
4
3
1
1
2
4
4
3
1
1
2
4
4
3
1
1
2
4
4
3
1
1
2
4
4
3
1
4
2
4
4
3
1
4
2
4
4
3
1
4
2
4
4
3
1
4
2
3
4
3
1
4
2
3
4
3
1
4
2
3
4
3
1
4
2
3
4
3
1
4
2
3
4
3
1
4
2
3
4
3
1
4
2
3
3
3
1
4
2
3
3
3
1
4
2
3
3
3
1
4
2
3
3
3
1
4
2
3
3
3
1
4
2
3
3
3
1
4
2
3
3
3
1
4
2
3
3
3
1
4
2
3
3
3
1
4
2
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
3
3
3
1
4
1
4
3
3
1
4
1
4
3
3
1
4
1
4
3
3
1
4
1
4
3
3
1
4
1
4
3
3
1
4
1
4
3
3
1
4
1
4
3
3
1
4
1
4
3
3
1
4
1
4
3
3
1
4
1
4
3
3
1
4
1
4
3
3
1
4
1
4
3
3
1
4
1
4
3
3
1
4
1
2
2 1 2 4 4
1 1 1 4 1
2
2 1 4 3 4
3 4 1 2 3
1
4
3
1
2
3
1
1
4
2
4
1
2
1
3
2
1
2
1
3
1
1
4
3
2
3
3
3
3
1
3
3
1
4
1
1
4
3
1
2
2
4
4
3
1
1
1
3
2
1
1
1
2
1
4
4
4
1
4
4
4
2
2
3
4
1
2
3
1
3
3
2
3
1
3
1
2
3
3
3
1
3
3
3
2
2
2
3
2
3
3
4
4
4
4
1
3
1
4
2
1
2
2
2
2
2
4
1
3
2
3
2
1
4
2
3
1
2
4
2
4
3
4
3
2
2
1
1
4
2
2
2
2
2
2
1
1
3
4
3
1
4
4
1
4
3
3
4
2
3
1
2
2
1
4
1
4
2
2
2
1
1
4
1
3
2
2
1
2
3
3
3
4
2
1
2
2
3
4
1
1
4
3
4
4
1
2
4
4
2
3
4
1
4
4
2
3
2
3
1
3
4
4
2
4
1
3
1
4
1
3
1
4
4
3
4
4
3
4
4
1
2
1
4
1
1
3
1
3
3
3
3
4
3
2
3
3
4
1
4
4
2
3
3
1
2
4
4
3
1
2
2
1
2
1
3
2
1
1
4
1
1
3
4
3
1
2
2
1
1
3
4
3
3
3
3
1
1
1
1
3
2
4
4
3
2
1
1
2
4
3
1
3
3
1
3
1
4
4
2
4
4
2
4
3
2
3
4
2
2
3
4
2
2
4
2
2
3
4
4
2
3
1
4
2
1
3
1
2
4
3
3
3
2
2
4
3
4
2
2
1
4
2
3
4
2
4
4
2
4
3
4
2
2
3
3 3 3 3 3
3 3 3 3 3
3
4 4 4 4 4
4 4 4 4 4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
3
3
3
4
4
4
4
1 1 1 1 1
2 2 2 2 2
3
4 4 4 4 4
1 1 1 1 1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
2
3
4
1
2
1
4 4 4 4 4
2 2 2 2 2
1
2 2 2 2 2
1 1 1 1 1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
3
1
2
1
1
4
3
1
2
1
1
4
3
1
2
1
1
4
3
1
2
1
1
4
3
1
2
1
1
4
3
1
2
1
1
4
3
1
2
1
1
4
3
1
2
1
1
4
3
1
2
1
1
4
3
1
2
1
1
4
3
3
2
1
1
4
3
3
2
1
1
4
3
3
2
1
1
4
3
3
2
1
1
4
3
3
2
1
1
4
3
3
2
1
1
4
3
3
2
1
1
4
3
3
2
1
1
4
3
3
2
4
1
4
3
3
2
4
1
4
3
3
2
4
1
4
3
3
2
4
1
4
3
3
2
4
1
2
3
3
2
4
1
2
3
3
1
4
4
2
3
4
1
1
4
2
1
4
1
1
4
2
1
4
1
1
4
2
1
4
1
1
4
2
1
4
1
1
4
2
1
4
1
1
4
2
1
4
1
1
4
2
1
4
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
2
1
2
1
1
4
3 1 2 3 4
3 1 2 3 3
4
2 3 2 2 2
2 3 1 1 1
4
1
2
3
4
4
2
4
1
1
1
4
1
3
2
3
2
1
3
4
3
1
3
3
2
3
4
4
2
1
1
2
1
2
4
2
4
1
2
3
1
1
4
1
4
2
3
4
2
1
4
3
4
4
1
2
2
3
2
4
4
2
1
2
3
2
2
2
4
3
1
2
3
4
4
3
4
4
3
4
3
3
4
1
2
3
3
2
4
4
1
3
4
2
1
2
2
4
4
1
2
1
3
3
4
4
3
4
1
1
3
2
1
4
4
3
4
4
3
1
2
4
1
3
4
1
3
4
3
4
1
2
2
4
2
2
3
1
2
1
4
1
4
4
3
1
3
4
3
3
2
3
3
4
3
4
2
3
1
3
4
1
3
3
3
1
2
2
3
1
3
2
1
1
4
1
1
4
1
2
3
1
3
2
3
3
4
1
2
1
3
3
4
3
2
2
4
1
2
3
1
2
2
4
4
4
2
1
2
3
3
3
4
2
1
3
1
2
1
2
3
4
2
4
1
2
4
2
3
4
4
1
3
1
2
2
1
2
1
1
4
3
2
4
4
4
4
2
1
3
4
3
4
2
2
1
4
4
3
4
2
3
1
2
1
4
4
2
3
4
4
3
1
4
3
2
4
2
4
4
3
4
1
4
2
1
1
2
1
2
4
3
1
2
3
4
4
1
4
4
3
2
2
1
2
3
2
4
3
4
4
4
2
4
4
2
1
1
1
3
3
1
1
2
4
2
4
4
4
1
4
3
1
3
1
3
4
2
4
3
4
4
2
1
3
1
2
4
4
2
1
1
2
2
4
4 4 4 4 4
4 4 4 4 4
4
4 4 4 4 4
4 4 4 4 4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
2
3 3 3 3 3
4 4 4 4 4
1
2 2 2 2 2
3 3 3 3 3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
2
3
4
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
1
2
3
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
3
4
1
2
3
4
1
1 1 1 1 1
2 2 2 2 2
2
2 2 2 2 2
2 2 2 2 2
1
1
2
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
4
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
1
2
1
1
1
2
1
2
1
1
1
2
1
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
2
2
2
2
1
1
2
2
2
2
1
1
2
2
2
2
1
1
2
2
2
2
2
3 3 4 2 4
4 4 3 2 2
2
3 1 2 2 1
1 1 3 2 2
4
4
2
4
3
3
4
3
3
4
3
3
1
3
2
1
4
3
2
3
2
3
3
1
2
3
2
4
3
2
1
4
1
2
2
1
4
2
4
3
2
2
3
1
3
2
3
2
1
1
2
4
1
1
3
1
4
4
2
2
3
2
3
1
2
3
3
3
4
4
4
1
3
4
4
3
2
3
4
2
2
2
4
3
1
4
3
2
2
3
3
2
4
2
2
1
2
4
3
3
4
2
2
3
4
1
1
3
2
1
2
1
3
3
4
3
3
2
3
1
3
4
3
2
2
1
3
1
1
2
3
3
3
1
3
4
4
3
2
3
2
4
2
3
3
2
1
4
1
1
2
3
1
2
2
3
1
3
2
4
1
1
1
4
3
1
3
3
3
1
2
4
1
3
4
1
1
2
3
3
1
1
4
3
1
1
1
3
4
4
1
3
2
3
1
1
3
3
3
4
2
3
3
1
4
2
3
3
2
3
4
2
2
1
4
3
1
3
4
4
3
1
4
2
2
3
1
3
3
3
3
4
4
1
4
4
3
2
4
1
2
1
4
3
1
1
3
1
4
4
1
3
2
4
4
2
1
3
3
1
1
2
4
1
2
3
2
4
4
1
4
3
4
2
3
3
3
2
4
1
1
1
1
4
2
1
1
1
2
4
3
4
3
3
1
4
4
3
3
1
2
2
4
2
2
1
4
3
4
4
1
1
1
3
3
3
2
1
2
3
2
3
1
1
3
3
3
3
2
1
3
1
2
2
2
1
1
2
3
2
3
1
3
4
1
3
1
1
4
1
3
2
2
1
68.8
68.9
68.9
Blocks of 64 nodes
69.4
69.4
69.4
69.5
Average of 32 nodes
69.7
69.7
69.4
69.7
Random nodes
70.9
71.0
70.6
70.5
Application Explorations for Future Interconnects, R.F. Barrett, C.T. Vaughan, S.D. Hammond, and
D.Roweth, Workshop on Large-Scale Parallel Processing, at the International Parallel and Distributed
Processing Symposium: IPDPS 2013, Boston, MA, 2013.
SC 2013
54
66
64
62
60
58
Block layout
56
Random(64) layout
54
52
50
128
256
512
1024
2048
4096
8192
5/7/2014
55
66
400
64
350
62
300
60
250
58
200
I/O bandwidth
miniGhost(4)
miniGhost(3) + I/O
56
150
54
100
52
500
68
70
50
50
256
512
1024
2048
4096
8192
5/7/2014
56
57
Scalability
Scale to large system sizes without sacrificing stability
Provide system management tools to manage complicated
systems
58
Service
node OS
File
systems
Networking
Third-party
extensions
Lustre
NFS
Operating
system
services
Core specialization
Dynamic Shared
Library (DSL) support
Cluster Compatibility
Mode (CCM)
Data Virtualization
Service (DVS)
System
management
Application-Level
Placement Scheduler
(ALPS)
Node Health Checker
(NHC)
Cray Management
Services (CMS)
Command interface
GPFS
Work load managers
Hardware
Supervisory
System
Handling errors,
resiliency
Event routing
Booting the system
59
MPI
SHMEM
User-level
OS Bypass
OS Bypass
Kernel
ioctl or
syscall
Programming
Models
Generic
APIs
PGAS/SHMEM
Applications
User-level
Cray Linux
& Network
Driver
SHMEM
OS Bypass
MPI
Applications
OS Bypass
User
Applications
PGAS/SHMEM
Applications
ioctl or
syscall
MPI
Applications
XC30
Network
Gemini Network
Aries Network
Common Base
60
Programmers
Cray Programming
Environment
Administrators
Programming Models
Library Based
Compilers
CUDA
MPI
Directive Based
SHMEM
OpenACC
Cray
System
Mgmt
OpenMP
UPC
CAF
esFS
esLogin
esMS
Linux
Chapel
External
Server
Mgmt
System
Config,
Boot
Manager,
&
Health
Services
Language Based
Linux
Debugging Tools
Performance Tools
Modules
CUDA
Development tools
Scientific
MPI
Scientific
MPI
Other
Workload Manager
uGNI
Linux Environment
Cray APIs
DMAPP
ALPS Infrastructure
ALPS Launch
MOM
Linux
CLE
CLE
CLE
CLE
CLE
CLE
CLE
CLE
CLE
CLE
gNI
gNI
gNI
gNI
gNI
gNI
gNI
gNI
gNI
gNI
Cray
X86-64
I/O
Nodes
Cray
GPU
Compute
Nodes
Cray
GPU
Compute
Nodes
Cray
GPU
Compute
Nodes
Cray
GPU
Compute
Nodes
Cray
x86-64
Compute
Nodes
Cray
x86-64
Compute
Nodes
Cray
x86-64
Compute
Nodes
Cray
x86-64
Compute
Nodes
Cray
X86-64
I/O
Nodes
System
Management
Workstation
External
Cluster
Manager
SMW
BMC
Accelerator
x86
x86
Boot RAID
Compute
x86
MDS
OST
Lustre
esFS
Legend
Site Network
Cray Content
GPU
x86
Memory
Memory
NFS
GPFS
OST
PCIe
(DVS)
Panasas
Lustre
Appliance
Customer
Filesystem
61
GNU
Cray Linux
Environment
CrayPAT
Cray Apprentice2
Reveal
Cray Iterative
Refinement Toolkit
Cray PETSc, CASK
DVS
62
Cray Linux
Environment
CrayPAT
Cray Apprentice2
Reveal
Load & Go
Build & Go
Cray Iterative
Refinement Toolkit
Cray PETSc, CASK
DVS
Tune & Go
Code & Go
Mode
Mode
No compromise scalability
Low-Noise Kernel for scalability
Native Comm. & Optimized MPI
Application-specific performance
tuning and scaling
No compromise compatibility
Fully standard x86/Linux
Standardized Communication Layer
Out-of-the-box ISV Installation
ISV applications simply install and
run
CLE run mode is set by the user on a job-by-job basis to provide full flexibility
64
Executing Application
Runtime Information
2. Compiler
Export/Import
Program Analyses
Performance
Feedback
Application
Source code
1. Applications
Database
containing
application
information
Performance Analysis
Results
Queries for
Application
Optimization
65
Fortran
Programming
models
Distributed
Memory
(Cray MPT)
MPI
SHMEM
Cray Compiling
Environment
(CCE)
Tools
Optimized Scientific
Libraries
Environment setup
Compilers
LAPACK
I/O Libraries
NetCDF
Modules
ScaLAPACK
Debuggers
HDF5
BLAS (libgoto)
GNU
Modules
Shared Memory
OpenMP 3.0
OpenACC
C++
PGAS & Global
View
Python
UPC (CCE)
CAF (CCE)
Chapel
DDT
3rd Party
Compilers
lgdb
Debugging Support
Tools
Abnormal
Termination
Processing
Iterative
Refinement
Toolkit
Cray Adaptive
FFTs (CRAFFT)
FFTW
STAT
Cray PETSc
(with CASK)
Performance Analysis
Cray Trilinos
(with CASK)
CrayPat
Cray developed
Licensed ISV SW
3rd party packaging
Cray added value to 3rd party
Cray
Apprentice2
Scoping Analysis
Reveal
66
18.00
18.00
Cray XC30
16.00
16.00
14.00
14.00
FDR IB Cluster
FDR IB Cluster
Cray XC30
12.00
12.00
10.00
10.00
8.00
8.00
6.00
6.00
4.00
4.00
2.00
2.00
0.00
0.00
00
512
512
1024
1024
1536
1536
Cores
SC 2013
2048
2048
Item
Item
Item
Processor
Processor
Processor
Compiler
Compiler
Compiler
Compiler
Compiler
Compiler
Options
Options
Options
Topology
Topology
Topology
MPI
MPI
MPI
Libraries
Libraries
Libraries
Math
Math
Math
Libraries
Libraries
Libraries
OS
OS
OS
Tuning
FDR IB Cluster
FDR IB Cluster
FDR IB Cluster
Intel E5-2670
Intel E5-2670
Intel E5-2670
Intel 13.1
Intel 13.1
Intel 13.1
-heap-arrays -ip -heap-arrays -ip --heap-arrays
O3 -xW free -ip
O3 -xW free
O3 -xW free
Full Fat Tree
Full Fat Tree
Full Fat Tree
Intel 4.0
Intel 4.0
Intel 4.0
Intel MKL 10.3
Intel MKL 10.3
Intel MKL 10.3
RHEL 6.2
RHEL 6.2
RHEL 6.2
Cray XC30
Cray XC30
Same
Same
CCE 8.1
Same
Default flags
Same
Dragonfly
Dragonfly
Cray MPICH2
Cray MPICH2
6.0
6.0
Cray Libsci
Cray Libsci 12.1
12.1
CLE 5.1
CLE 5.1
MPI Rank
Reordering
67
Storage
68
or
HPC
Cluster
Cray Sonexion
HSM
Tape
Cray Development
Environment
(esLogin)
SFA12K
E-Series
69
Scalable Storage
Units
April 2013
Cray Inc.
70
71
72
Node Status
FS Throughput
Inventory
Statistics
73
BoM Plans
Discussion
5/7/2014
74
Questions?