TechPack Developers
From Education
Note: This document was pulled from EAPF's shared folder on June 2, 2010, and may not accurately reflect its current state.
Note: The conversion process from Docs -> Wiki may result in some unusual formatting.
Charge for subgroup:
- Identify Target audience(s)
- Pick 3 or 4 specific instances of people we want to be addressed by this group -- for example, game console developers for the dev TechPack.
- Identify Capability (Tool/Knowledge) requirements for each target audience.
- Languages, types of parallelism, etc.
- Fill in examples of sources for material to fulfill requirements
- Existing websites, books, ACM course material, etc.
Targets
Corporate Developer - hosted applications, databased backed, transactions, web-based
- managed code - Java/C#
- C/C++
Windows/Linux
Tools -
ISV Developer - stand alone applications, client side, exe/app
- C/C++
Windows/Mac/Linux/Unix
- Mobile
- Game
HPC/Scientific Performance intensive
- MapReduce, Python, Fortran, C/C++, CUDA
OEM/Embedded - device drivers, software to support device processing
- C/C++, proprietary language
Capabilities
Techniques: Task parallelism, MapReduce, MPI
Languages: C/C++, GPGPU (CUDA/DirectCompute/OpenCL), Graphics (OpenGL/DirectX), Fortran, Python, Java, C#
Frameworks: TBB, GCD, Ct
Introductory Usage Exemplars:
- Parallelism for PC game
- data vs. task parallelism
- Parallel web app
Audience:
Notes -
Almost half (46%) of North American developers report some involvement in multi-core processing efforts. Related emphasis fluctuates on a periodic basis, suggesting project based selection rather than a change in infrastructure approach. More than half (53%) of the developers who implement multi-threaded solutions select kernel based alternatives like Windows, Posix or Intel threading solutions. The implementation of multi-threaded or multi-core processing is complex. Only the OEM and scientific segments significantly implement customized multi-core solutions, the other segments rely on vendor provided offerings that provide comprehensive solution sets. Evans
Saturday 29th 2010
Development plan:
June 30th - Annotated bib similar to “cloud computing tech pack”
August 31st - Add links to annotated examples, e.g. OpenGL tutorials
Nov 13 SC BOF (techpack launch)
December 31st - XXX
Bike Tour #1
- Introduction
- Architecture motivation
- Heterogeneous architectures
- Concurrency Vs Parallelism
- Ben will explain.
- Parallelism Patterns
- Task parallelism
- Pull examples from motifs/dwarves
- Data Parallelism
- Pipeline Parallelism
- Task parallelism
- Compound Applications of Parallelism
- nested/hybrid
- Real example
- Programming Models
- C#, Java, OpenMP, CUDA/OpenCL/DirectCompute, MPI
- Frameworks - TBB, Ct, ConcRT, TPL, GCD
- Win32/POSIX threads
- Vector programming???
- Graphics API and languages - OpenGL and DirectX
- Functional - Haskell, Erlang, #F, OCAML
- Map/Reduce
- Parallel Algorithms
- Data Structures
- critical sections
- lock free implementations
- Dwarves/Motifs/Patterns