Alchemi

advertisement
Тодор Колев – 43866; II група, I курс, Информатика
Overview of the Alchemi .NET Grid Computing Framework
1
Overview of the Alchemi .NET Grid Computing Framework
(http://www.alchemi.net/doc/0_6_1/index.html)
Alchemi - Plug & Grid Computing
Alchemi is an open source software framework that allows you to painlessly aggregate the
computing power of networked machines into a virtual supercomputer (computational grid) and to
develop applications to run on the grid.
What is a Grid?
Here is a definition from http://www.gridcomputing.com:
A grid is a type of parallel and distributed system that enables the sharing, selection, and
aggregation of geographically distributed "autonomous" resources dynamically at runtime
depending on their availability, capability, performance, cost, and users' quality-of-service
requirements.
Thus, at the most basic level, a grid can be viewed as an aggregation of multiple machines
(each with one or more CPUs) abstracted to behave as one "virtual" machine with multiple
CPUs.
Grid implementations differ in the way they implement this abstraction. One of the key
differentiating features of Alchemi is the way it abstracts the grid, with the aim to make the
process of developing grid software as easy as possible. The next section expands on this.
Fine-Grained Abstraction : Grid Threads
Traditional grid implementations have only offered a high-level abstraction of the "virtual machine",
where the smallest unit of parallel execution is a process (job). This scenario can be complicated
and inflexible.
Alchemi supports this model, but primarily offers a more low-level (and hence more powerful)
abstraction of the underlying grid by providing a programming model that is object-oriented and
that imitates traditional multi-threaded programming.
The smallest unit of parallel execution in this case is a grid thread (object), where a grid thread is
very similar to a "normal" thread. A grid application is defined simply as an application that is to
be executed on a grid and that consists of a number of grid threads executing in parallel.
The developer deals only with application and thread objects and any other custom objects,
allowing him/her to concentrate on the application itself without worrying about the "plumbing"
details. Furthermore, abstraction at this level allows the use of programming language constructs
such as events between local and remote code.
All of this is offered via the Alchemi API.
The fact that a) objects are much easier to deal with than processes combined with b) a
programming model that is familiar to developers and c) the use of language constructs across
local and remote code makes this a superior approach.
The additional benefit of this approach is that it does not limit the developer to applications that
are completely or "embarrassingly" parallel. Indeed, it allows development of grid applications
where inter-thread communication is required.
Тодор Колев – 43866; II група, I курс, Информатика
Overview of the Alchemi .NET Grid Computing Framework
2
Grid Components
Grids are constructed using three types of distributed components (or nodes). These are named
according to their roles with respect to a grid application.
Manager
The Manager manages the execution of grid applications and provides services associated with
managing thread execution.
Executor
The Executor executes individual grid threads and provides services associated with executing
threads.
An Executor can be configured to be dedicated (meaning the Manager initiates thread execution
directly) or non-dedicated (meaning that thread execution is initiated by the Executor on a
volunteer basis via a screen saver or some other user-defined options.)
Owner
The Owner owns an application and provides services associated with the ownership of an
application and its threads.
The Owner is implicitly created by the Alchemi API.
The simplest grid consists of one Manager. Multiple Executors are configured to connect to the
Manager. One or more Owners can execute applications on the grid by connecting to the Manager.
Тодор Колев – 43866; II група, I курс, Информатика
Overview of the Alchemi .NET Grid Computing Framework
3
Glossary:
thread - A part of a program that can execute independently of other parts.
process - A process is a single executable module that runs concurrently with other executable
modules. Multiple threads of execution may occur within a process.
open source - Generically, open source refers to a program in which the source code is available
to the general public for use and/or modification from its original design free of charge, i.e., open.
computer - A machine for carrying out calculations and performing specified transformations on
information, such as storing, sorting, correlating, retrieving and processing data.
supercomputer - The fastest type of computer. Supercomputers are very expensive and are
employed for specialized applications that require immense amounts of mathematical calculations.
application - A program that gives instructions to the computer. Applications can provide the user
or another application with tools to accomplish a task.
runtime - The period of time during which a program is executing.
object – Program item that can be individually selected and manipulated. It contains data and
defines operations over the data.
object-oriented - A principle of analysis, design, and programming that treats system
components as objects, i.e., any method, language, or system that supports object identity,
classification, encapsulation, and specialization.
multi-threaded - Different parts of a single program to run concurrently.
event - An action or occurrence detected by a program. Events can be user actions, such as
clicking a mouse button or pressing a key, or system occurrences, such as running out of memory
API - Abbreviation of Application Program Interface, a set of and tools for building software
applications.
code - Computer instructions written in specific programming language
framework - A framework is an extensible structure for describing a set of concepts, methods and
technologies necessary for a complete application developing process.
screen saver - A small program that takes over the display screen if there are no keystrokes or
mouse movements for a specified duration
Тодор Колев – 43866; II група, I курс, Информатика
Overview of the Alchemi .NET Grid Computing Framework
4
Test:
1. A grid is a multi-processor machine.
a) true
b) false
2. Which is the smallest unit of parallel execution in the Alchemi Framework?
a) grid thread
b) grid process
c) grid node
3. Which component of the grid is implicitly created by the Alchemi API?
a) Manager
b) Executor
c) Owner
4. The approach used in Alchemi limits the developer to applications that are completely or
"embarrassingly" parallel.
a) true
b) false
5. Grid threads are most similar to:
a) jobs
b) objects
Тодор Колев – 43866; II група, I курс, Информатика
Overview of the Alchemi .NET Grid Computing Framework
Answers:
1
2
3
4
5
- b)
– a)
– c)
– b)
– b)
5
Download