acm - an acm publication

2014 - September

  • The Future of Synchronization on Multicores: The multicore transformation (Ubiquity symposium)
    Synchronization bugs such as data races and deadlocks make every programmer cringe traditional locks only provide a partial solution, while high-contention locks can easily degrade performance. Maurice Herlihy proposes replacing locks with transactions. He discusses adapting the well-established concept of data base transactions to multicore systems and shared main memory.
  • Making Effective Use of Multicore Systems A software perspective: The multicore transformation (Ubiquity symposium)
    Multicore processors dominate the commercial marketplace, with the consequence that almost all computers are now parallel computers. To take maximum advantage of multicore chips, applications and systems should take advantage of that parallelism. As of today, a small fraction of applications do. To improve that situation and to capitalize fully on the power of multicore systems, we need to adopt programming models, parallel algorithms, and programming languages that are appropriate for the multicore world, and to integrate these ideas and tools into the courses that educate the next generation of computer scientists.
  • The MOOC and the Genre Moment: MOOCs and technology to advance learning and learning research (Ubiquity symposium)
    In order to determine (and shape) the long-term impact of MOOCs, we must consider not only cognitive and technological factors but also cultural ones, such as the goals of education and the cultural processes that mediate the diffusion of a new teaching modality. This paper examines the implicit cultural assumptions in the "MOOCs and Technology to Advance Learning and Learning Research Symposium" and proposes an alternative theory of diffusion to Clayton Christensen's disruptive innovation model as an illustration of the complexity that these assumptions hide.
  • The Multicore Transformation Closing Statement: The multicore transformation (Ubiquity symposium)
    Multicore CPUs and GPUs have brought parallel computation within reach of any programmer. How can we put the performance potential of these machines to good use? The contributors of the symposium suggest a number of approaches, among them algorithm engineering, parallel programming languages, compilers that target both SIMD and MIMD architectures, automatic detection and repair of data races, transactional memory, automated performance tuning, and automatic parallelizers. The transition from sequential to parallel computing is now perhaps at the half-way point. Parallel programming will eventually become routine, because advances in hardware, software, and programming tools are simplifying the problems of designing and implementing parallel computations.