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.
Keywords for this software
References in zbMATH (referenced in 4 articles )
Showing results 1 to 4 of 4.
- Michailidis, Panagiotis D.; Margaritis, Konstantinos G.: Scientific computations on multi-core systems using different programming frameworks (2016)
- Abraham, Goodhead Tomvie; James, Anne; Yaacob, Norlaily: Priority-grouping method for parallel multi-scheduling in grid (2015)
- Gerbessiotis, Alexandros V.: Parallel option price valuations with the explicit finite difference method (2010)
- Pllana, Sabri; Benkner, Siegfried; Mehofer, Eduard; Natvig, Lasse; Xhafa, Fatos: Agent-supported programming of multicore computing systems (2010)