|
Multicore
SWARM
(Software and
Algorithms for Running on Multicore) |
|
|
|
|
|
|
|
|
Introduction |
Since the
inception of desktop computer, software performance has improved at an
exponential rate, primarily driven by rapid growth in processing power.
Performance of an algorithm kept on simply improving by the arrival of
newer and faster processors. However, we can no longer solely rely on
Moore’s law for performance improvements. Fundamental physical limitations
such as the size of the transistor and power constraints have now
necessitated a radical change in commodity microprocessor architecture to
multicore designs. Dual and quad-core processors are slowly and steadily
finding their way into the desktops and the laptops. Software developers
and programmers are now required to exploit this concurency at algorithmic
level.
SWARM (SoftWare and
Algorithms for Running on
Multicore) has been introduced as an open source parallel
programming framework. It is a library of primitives that fully exploit
the multicore processors. SWARM is built on POSIX threads that allow the
user to use either the already developed primitives or direct thread
primitives. SWARM has constructs for parallelization, restricting control
of threads, allocation and de-allocation of shared memory, and
communication primitives for synchronization, replication and
broadcasting. The framework has been successfully used to implement
efficient parallel versions of primitive algorithms. Viz. List ranking,
Prefix sums, Symmetry breaking etc. |
|
Download |
Multicore SWARM 1.1
|
|
Install |
Linux, FreeBSD, Solaris, AIX:
1. Download the multicore-swarm tar ball. |
2.
Type tar -xvzf swarm-x.y.tar.gz. Where 'x.y' is the version
number. This will create a subdirectory called swarm-x.y . All of
swarm's source code will be untarred here. |
3.
Type in the following commands to get SWARM
running. cd
swarm-x.y ./configure This
will create the
makefile make
This will create the
library make
test This
will check the library with test routines |
4. An
executable swarm_test is created in the swarm-x.y/tests directory.
Type ./swarm_test to run the test code. -t option can be
used to specify the number of threads to be used.
|
MS Windows:
1.On installation, following 2 folders will be created in
swarm-x.y (x.y is the version number)
directory: pthreads: pthreads/include
- requisite pthreads header
files pthreads/lib
- dynamic library for
pthreads swarm: swarm/include
- function declarations for SWARM
API swarm/lib
- dynamic library for
swarm swarm/tests
- test codes |
2.
The System PATH will automatically be set to point to the dll files
swarm.dll and pthreadVC2.dll |
3. In
the tests folder, double click the VC++ project
'SWARM_Test' |
4.
Click on Build -> Build Solution to compile. You will be asked to
save Swarm_Test. Select Save. |
5.
Click on Debug -> Start without debugging to
Execute. |
6. Command line arguments can be specified in Project ->
Swarm_Test Properties -> Configuration Properties -> Debugging
-> Command arguments. (eg -t <number of threads>).
| |
|
Documentation |
Swarm.pdf - This documentation provides
descriptions for various variables, functions and macros that can be used
as API’s for developing parallel codes and is supported by the explanation
of an example code. |
|
Developers |
|
|
This site is maintained by David A. Bader
|
|
|