CSC 2/458
Parallel and Distributed Systems
Spring 2008.
Possible student-led classes
The following are listed in no particular order, but I've highlighted in
red the ones I'd particularly like to see someone
take.
Also note that this is in no way an exhaustive list; feel free to
suggest a topic of your own.
- The HPCS languages
- Fortress (Sun), X10 (IBM), and Chapel (Cray). These are
the latest, greatest thing in parallel language design.
Transactions, control abstraction, and explicit locality
management. Commissioned by DARPA.
- Partitioned global address space (PGAS)
languages
- These are arguably the most mature parallel langauges for
high-end scientific computing. Look into co-array Fortran,
UPC, and Titanium.
- Parallel functional languages
- Several people have argued that functional languages are the
ideal notation in which to express parallel programs, becuase the
lack of side effects makes parallelization easy. Look into
(1) Parallel Haskel (pH) and its cousins, or (2) Microsoft's new F#.
- Other parallel languages and notations
- Compare and contrast some subset of HPF, OpenMP,
Java, C#, Ada, Perl, Ruby, ...
- Analysis tools
- for race detection, model checking, etc.
- Fine-grain threaded programming models
- Several people have argued that parallelization would be easier
if we didn’t have to worry about grain size: make everything
a thread. How can we do this efficiently? Look into
Cilk and its cousins.
- The top 500 list
- Learn about the world's biggest machines, and tell us what
they're like.
- Transactional memory
- The hottest fad for multicore.
Huge number of topics to explore; ask me!
- Cache coherence for large machines—
- beyond the confines of a single bus. Teach us
how the SunFire and Regatta machines work. Also look at the SGI
Origin series and the AlphaServer GS320.
Alternatively, present the token coherence scheme of Martin,
Hill, and Wood, which provides a highly optimized implementation of
sequential consistency.
- Comparison of S-DSM systems
- Ivy, Munin, Treadmarks, HLRC, Cashmere
- Topics in locking and synchronization
- Possibilities include
- scheduler-conscious synchronization
- read-copy-update as a fast alternative to locking
- timeout capability
- CORBA and .NET
- These are the competing standars for distributed object-oriented
computing. It’s Microsoft v. the world (again). How do the
contenders compare?
- ssh, firewalls, proxies, tunneling, VPN, etc.
- What are the tradeoffs in the design of security mechanisms for
remote computer access?
- distributed file systems
- There are lots of these around, from the well-established,
feature-rich AFS to the experimental OceanStore and FarSite. So how
come most of us still use NFS and SMB?
- peer-to-peer sharing, overlay networks, distributed
hash tables, etc.
- This stuff has been really hot the last few years. But is it
good for anything other than stealing music?
- Active devices and storage-area networks
- Increasingly people are proposing that storage devices be
connected directly to the network, the way processors and printers are.
Network-attached devices tend to have quite a bit of processing power.
Can we do cool stuff by downloading application code?
- System area networks
- These are very high bandwidth, very low latency networks
suitable for one-room super clusters. Look into VIA, Infiniband,
Scheduled Transfer, GSN, etc.
- The GRID
- An active collection of research groups is working to connect
high-end computational centers (e.g. the National Labs) into a
global system, with convenient naming, authentication, remote access,
data sharing, resource allocation, etc. See the book (2nd edition)
by Foster and Kesselman.
- Modeling speedup
- Read and summarize the various seminal papers on speedup,
efficiency, scaled speedup, isoefficiency, EDSF (experimentally
determined serial fraction), etc.
Last Change:
12 January 2011 /
