Next Previous Contents

# Linux Parallel Processing HOWTO

## Hank Dietz, `hankd@engr.uky.edu`

v2.0, 2004-06-28

Although this HOWTO has been "republished" (v2.0, 2004-06-28) to update the author contact info, it has many broken links and some information is seriously out of date. Rather than just repairing links, this document is being heavily rewritten as a Guide which we expect to release in July 2004. At that time, the HOWTO will be obsolete. The prefered home URL for both the old and new documents is http://aggregate.org/LDP/

Parallel Processing refers to the concept of speeding-up the execution of a program by dividing the program into multiple fragments that can execute simultaneously, each on its own processor. A program being executed across N processors might execute N times faster than it would using a single processor. This document discusses the four basic approaches to parallel processing that are available to Linux users: SMP Linux systems, clusters of networked Linux systems, parallel execution using multimedia instructions (i.e., MMX), and attached (parallel) processors hosted by a Linux system.

## 1. Introduction

- 1.1 Is Parallel Processing What I Want?
- 1.2 Terminology
- 1.3 Example Algorithm
- 1.4 Organization Of This Document

## 2. SMP Linux

- 2.1 SMP Hardware
- 2.2 Introduction To Shared Memory Programming
- 2.3 bb_threads
- 2.4 LinuxThreads
- 2.5 System V Shared Memory
- 2.6 Memory Map Call

## 3. Clusters Of Linux Systems

- 3.1 Why A Cluster?
- 3.2 Network Hardware
- 3.3 Network Software Interface
- 3.4 PVM (Parallel Virtual Machine)
- 3.5 MPI (Message Passing Interface)
- 3.6 AFAPI (Aggregate Function API)
- 3.7 Other Cluster Support Libraries
- 3.8 General Cluster References

## 4. SIMD Within A Register (e.g., using MMX)

- 4.1 SWAR: What Is It Good For?
- 4.2 Introduction To SWAR Programming
- 4.3 MMX SWAR Under Linux

## 5. Linux-Hosted Attached Processors

- 5.1 A Linux PC Is A Good Host
- 5.2 Did You DSP That?
- 5.3 FPGAs And Reconfigurable Logic Computing

## 6. Of General Interest

- 6.1 Programming Languages And Compilers
- 6.2 Performance Issues
- 6.3 Conclusion - It's Out There

Next Previous Contents