Lec1 - Sequential Programming Single thread of control...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
1 CS 3211 – Parallel & Concurrent Programming Introduction Abhik Roychoudhury National University of Singapore abhik@comp.nus.edu.sg CS3211 2009-10 by Abhik 1 http://www.comp.nus.edu.sg/~abhik/CS3211/index.html Also see IVLE Lesson Plan (updated every week) Sequential Programming ` Single thread of control flow. ` One program counter. ` Advances by executing an instruction. ` Standard programming languages ` C, Java. CS3211 2009-10 by Abhik 2 ` Sequential Java program may have many passive objects ` Only one active flow of control. Why Concurrent Programming? ` Wide rise of multi-cores ` Machines with 4 or more cores are common. ` Intel already has a research processor with 80 cores !! ` Why so ? ` Processor speeds have enabled more complex programming languages and tasks CS3211 2009-10 by Abhik 3 and tasks. ` But, is this not self-sustaining? The cycle [Larus, MSR-TR 08] Increased processor performance CS3211 2009-10 by Abhik 4 Larger, more feature-full software Larger development teams High-level Programming Abstractions Slower Programs Free lunch must end! `` For the past three decades, improvements in semiconductor fabrication and processor implementation produced steady increases in the speed at which computers executed existing sequential programs. The architectural changes in multicore processors benefit only concurrent applications and therefore have little value for most existing mainstream software. For the foreseeable future, today’s desktop applications will not run much faster than they do now. In fact, they may run slightly slower on newer chips, as CS3211 2009-10 by Abhik 5 individual cores become simpler and run at lower clock speeds to reduce power consumption on dense multicore processors …. Free lunch must end! … That brings us to a fundamental turning point in software development, at least for mainstream software. Computers will continue to become more and more capable, but programs can no longer simply ride the hardware wave of increasing performance unless they are highly concurrent. Although multicore performance is the forcing function, we have other reasons to want concurrency: notably, to improve responsiveness by performing work asynchronously instead of synchronously. For example, today’s applications CS3211 2009-10 by Abhik 6 must move work off the GUI thread so it can redraw the screen while a computation runs in the background.” - from “Software and the Concurrency Revolution”, ACM Queue 05 .
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2 On concurrency ` Being integrated into mainstream languages ` Java, C# ` Harder to program and understand ` Many inter-leavings even when each thread has one path. CS3211 2009-10 by Abhik 7 ` Cyclic debugging not possible – cannot reproduce an observable error ! Thread 1
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 8

Lec1 - Sequential Programming Single thread of control...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online