80 likes | 162 Views
NCSA Strategic Retreat: System Software Trends. Bill Gropp. Driving Forces. Hardware Power constraints have limited clock speeds; no significant increase since 2006 or expected for the next 5-10 years Multicore/ manycore makes everything parallel
E N D
Driving Forces • Hardware • Power constraints have limited clock speeds; no significant increase since 2006 or expected for the next 5-10 years • Multicore/manycore makes everything parallel • Changes in memory architecture (performance, power) • Heterogeneous processing elements (currently GPGPUs, later different elements on processor die) • Disk size makes TB a typical student laptop disk • Concern about Fault rate • Software • Complexity of software in applications • Algorithms • Complexity of applications in software
Trends in Software • Programming Languages/Models • Operating Systems • File Systems • Development Environments
Programming Models and Languages • Node programming • Algorithm/domain specific for multicore systems (e.g., TBB) • GPGPUs (X + OpenCL) • Autotuning; source to source transformations • Scripting, multilingual programming • (Distributed Memory) Parallel programming • The usual suspects • MPI; MPI + hybrid (threaded) model • PGAS (UPC, CAF); next Gen (Chapel, X10+, Fortress…) • GA, SHMEM, … • New(ish) • Parallel Data processing models/languages • MapReduce (Hadoop) • DAGs (DryadLinq)
Operating Systems • Light-weight for appliances (e.g., iPad) • Low-jitter for MPP • Less than single system image, but some coordinated activities • Scalability to SMP • Virtualization (Hypervisors) • Security and robustness
File Systems • Tweeks on POSIX API • Shared (“global file system”) • Performance, robustness variations • Non-POSIX API (parallel update semantics, e.g.) • ACLs • Data bases; Systems for data processing • Google file system etc. • Alternative persistent store models • Not a byte-stream model • Access methods within object/class • Hierarchical systems
Development Environments • “Domain specific” languages • IDE • Eclipse • Frameworks and libraries • Application areas • Debuggers • See programming languages (e.g., multilingual applications)
Summary • Most likely direction • HPC – Business as usual, with increased use of automation in code generation and tuning • Scalability issues will drive changes in commodity systems, but not necessarily in directions needed by HPC applications (see Linux Thread Scheduler) • New data management, possibly with low-level support • Exascale directions add • Fault tolerance becomes critical • Latency hiding/tolerances becomes critical