Part III. Programming

Table of Contents

Chapter 12. ProActive Basis, Active Object Definition
12.1. Active objects basis
12.2. What is an active object
Chapter 13. Active Objects: creation and advanced concepts
13.1. Instantiation-Based Creation
13.1.1. Possible ambiguities on the constructor
13.1.2. Using a Node
13.2. Object-Based Creation
13.3. Specifying the activity of an active object
13.3.1. Algorithms deciding which activity to invoke
13.3.2. Implementing the interfaces directly in the class
13.3.3. Passing an object implementing the interfaces at creation-time
13.4. Restrictions on reifiable objects
13.5. Using the Factory Method Design Pattern
13.6. Advanced: Customizing the Body of an Active Object
13.6.1. Motivations
13.6.2. How to do it
13.7. Advanced: Role of the elements of an active object
13.7.1. Role of the stub
13.7.2. Role of the proxy
13.7.3. Role of the body
13.7.4. Role of the instance of class B
13.8. Asynchronous calls and futures
13.8.1. Creation of a Future Object
13.8.2. Asynchronous calls in details
13.8.3. Important Notes: Errors to avoid
13.9. Automatic Continuation in ProActive
13.9.1. Objectives
13.9.2. Principles
13.9.3. Example
13.9.4. Illustration of an Automatic Continuation
13.10. The Hello world example
13.10.1. The two classes
13.10.2. Hello World within the same VM
13.10.3. Hello World from another VM on the same host
13.10.4. Hello World from abroad: another VM on a different host
Chapter 14. Typed Group Communication
14.1. Overview
14.2. Creation of a Group
14.3. Group representation and manipulation
14.4. Group as result of group communications
14.5. Broadcast vs Dispatching
Chapter 15. OOSPMD
15.1. OOSPMD: Introduction
15.2. SPMD Groups
15.3. Barrier: Introduction
15.4. Total Barrier
15.5. Neighbor barrier
15.6. Method Barrier
15.7. When does a barrier get triggered?
Chapter 16. Active Object Migration
16.1. Migration Primitive
16.2. Using migration
16.3. Complete example
16.4. Dealing with non-serializable attributes
16.5. Mixed Location Migration
16.5.1. Principles
16.5.2. How to configure
Chapter 17. Exception Handling
17.1. Exceptions and Asynchrony
17.1.1. Barriers around try blocks
17.1.2. TryWithCatch Annotator
17.1.3. Additional API
17.2. Non-Functional Exceptions
17.2.1. Overview
17.2.2. Exception types
17.2.3. Exception handlers
Chapter 18. Branch and Bound API
18.1. Overview
18.2. The Model Architecture
18.3. The API Details
18.3.1. The Task Description
18.3.2. The Task Queue Description
18.3.3. The ProActiveBranchNBound Description
18.4. An Example: FlowShop
18.5. Future Work
Chapter 19. High Level Patterns -- The Calcium Skeleton Framework
19.1. Introduction
19.1.1. About Calcium
19.1.2. The Big Picture
19.2. Quick Example
19.2.1. Define the skeleton structure
19.2.2. Implementing the Muscle
19.2.3. Create a new Calcium Instance
19.2.4. Provide an input of problems to be solved by the framework
19.2.5. Collect the results
19.2.6. View the performance statistics
19.3. Supported Patterns
19.4. Choosing a Resource Manager
19.5. Performance Statistics
19.5.1. Global Statistics
19.5.2. Result Statistics
19.6. Future Work