UMD CMSC 433  Concurrency abstractions (48 pages)
Previewing pages 1, 2, 3, 23, 24, 25, 26, 46, 47, 48 of 48 page document View the full content.Concurrency abstractions
Previewing pages 1, 2, 3, 23, 24, 25, 26, 46, 47, 48 of actual document.
View the full content.View Full Document
Concurrency abstractions
0 0 106 views
 Pages:
 48
 School:
 University of Maryland, College Park
 Course:
 Cmsc 433  Programming Language Technologies and Paradigms
Programming Language Technologies and Paradigms Documents

Chain of Responsibility Pattern
8 pages

13 pages

14 pages

14 pages

23 pages

28 pages

Introduction to Concurrent Programming in Java
14 pages

4 pages

4 pages

8 pages

15 pages

Atomic Variables & Nonblocking Synchronization
16 pages

13 pages

8 pages

13 pages

89 pages

11 pages

13 pages

62 pages

9 pages

39 pages

9 pages

27 pages

5 pages

21 pages

4 pages

5 pages

12 pages

45 pages

43 pages

Improving Software Quality with Static Analysis
31 pages

Interactive Development Environments, Testing, and Debugging
7 pages

137 pages

Running many tests with Test Suites
12 pages

11 pages

11 pages

19 pages

4 pages

8 pages

11 pages

5 pages

14 pages

9 pages

25 pages

50 pages

14 pages

10 pages

17 pages

54 pages

6 pages

6 pages

10 pages

3 pages

11 pages

17 pages

38 pages

Developing, Testing, Debugging
15 pages

17 pages

6 pages

3 pages

Software Design Principles and Guidelines
18 pages

18 pages

14 pages

2 pages

42 pages

3 pages

3 pages

49 pages

Correct and Efficient Synchronization of Java
6 pages

20 pages

Designing Objects for Concurrency
5 pages

12 pages

7 pages

86 pages

16 pages

17 pages

44 pages

15 pages

3 pages

19 pages

7 pages

26 pages

17 pages

Design Patterns for OO Development
13 pages

The Abstract Windowing Toolkit
8 pages

15 pages

20 pages

Enterprise Applications: EJB and J2EE
21 pages

20 pages

22 pages

54 pages

Introduction to Concurrent Programming in Java
20 pages

16 pages

19 pages

19 pages

46 pages

10 pages

4 pages

Data Abstraction, Types, and Polymorphism
8 pages

15 pages

12 pages

100 pages

23 pages

3 pages

2 pages

10 pages

13 pages

11 pages

17 pages

Programming Language Technology and Paradigms
4 pages

20 pages

8 pages

Using Static Analysis to Find Bugs
10 pages

105 pages

16 pages

11 pages

4 pages

2 pages

86 pages

7 pages

6 pages

Simpler, Faster, Better: Concurrency Utilities in JDK
44 pages

7 pages

2 pages

11 pages

20 pages

8 pages

5 pages

Introduction to Concurrent Programming in Java
5 pages

8 pages

Finding Bugs in Concurrent Software
19 pages

2 pages

16 pages

2 pages
Sign up for free to view:
 This document and 3 million+ documents and flashcards
 High quality study guides, lecture notes, practice exams
 Course Packets handpicked by editors offering a comprehensive review of your courses
 Better Grades Guaranteed
Unformatted text preview:
CMSC 433 Concurrency abstractions Oct 30th 2007 Project 3 due Nov 14th parallel graph exploration from a start node find all reachable nodes perform a computation at each node both finding the neighbors of a node and performing the computation might be expensive want to use concurrency to accomplish this quickly Nodes public interface Node N extends Node N V V V compute Collection N neighbors Explorer public interface Explorer N extends Node N V V public void explore N start int parallelism throws InterruptedException public Collection N reached public V getValue N n Implementing explore I ll give you a sequential implementation of explore You have to write a concurrent one explore is only called once on an explorer can return before all computation is done but all computation should be queued up for execution if interuptted computation should be aborted promptly Mock Framework We ll provide a mock framework can configure graph layout time required for call to neighbors and compute can mock processors want to mock 600 processors Concurrent correctness We will be executing these projects on a system with 32 cores We will ask you to explain why certain bad things can t happen Efficiency matters There will be some test cases that check that your implementation isn t too inefficient And that it also reaches moderate level of parallelism Some sort of non grade prize for the most efficient solution Simplicity You don t need to create threads synchronize use Locks Conditions or volatile variables to complete this project I encourage you not to We might require it or dock you points if you do Concurrency without threads You can write concurrent applications that don t use explicit threads or synchronization Use built in abstractions that support coordination and parallel execution a lot of this is covered in Section I 5 1 of JCIP Java 6 alert Some of the features I m going to be talking about are available only in Java 6 not in Java 5 If you ve got an Apple computer we re
View Full Document