<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>Linux Parallel Processing HOWTO</TITLE> <LINK HREF="Parallel-Processing-HOWTO-1.html" REL=next> </HEAD> <BODY> <A HREF="Parallel-Processing-HOWTO-1.html">Next</A> Previous Contents <HR> <H1>Linux Parallel Processing HOWTO</H1> <H2>Hank Dietz, <CODE> <A HREF="mailto:hankd@engr.uky.edu">hankd@engr.uky.edu</A></CODE></H2>v2.0, 2004-06-28<P>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 <A HREF="http://aggregate.org/LDP/">http://aggregate.org/LDP/</A> <P><HR> <EM><B>Parallel Processing</B> 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 <EM>N</EM> processors might execute <EM>N</EM> 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.</EM> <HR> <P> <P> <H2><A NAME="toc1">1.</A> <A HREF="Parallel-Processing-HOWTO-1.html">Introduction</A></H2> <UL> <LI><A HREF="Parallel-Processing-HOWTO-1.html#ss1.1">1.1 Is Parallel Processing What I Want?</A> <LI><A HREF="Parallel-Processing-HOWTO-1.html#ss1.2">1.2 Terminology</A> <LI><A HREF="Parallel-Processing-HOWTO-1.html#ss1.3">1.3 Example Algorithm</A> <LI><A HREF="Parallel-Processing-HOWTO-1.html#ss1.4">1.4 Organization Of This Document</A> </UL> <P> <H2><A NAME="toc2">2.</A> <A HREF="Parallel-Processing-HOWTO-2.html">SMP Linux</A></H2> <UL> <LI><A HREF="Parallel-Processing-HOWTO-2.html#ss2.1">2.1 SMP Hardware</A> <LI><A HREF="Parallel-Processing-HOWTO-2.html#ss2.2">2.2 Introduction To Shared Memory Programming</A> <LI><A HREF="Parallel-Processing-HOWTO-2.html#ss2.3">2.3 bb_threads</A> <LI><A HREF="Parallel-Processing-HOWTO-2.html#ss2.4">2.4 LinuxThreads</A> <LI><A HREF="Parallel-Processing-HOWTO-2.html#ss2.5">2.5 System V Shared Memory</A> <LI><A HREF="Parallel-Processing-HOWTO-2.html#ss2.6">2.6 Memory Map Call</A> </UL> <P> <H2><A NAME="toc3">3.</A> <A HREF="Parallel-Processing-HOWTO-3.html">Clusters Of Linux Systems</A></H2> <UL> <LI><A HREF="Parallel-Processing-HOWTO-3.html#ss3.1">3.1 Why A Cluster?</A> <LI><A HREF="Parallel-Processing-HOWTO-3.html#ss3.2">3.2 Network Hardware</A> <LI><A HREF="Parallel-Processing-HOWTO-3.html#ss3.3">3.3 Network Software Interface</A> <LI><A HREF="Parallel-Processing-HOWTO-3.html#ss3.4">3.4 PVM (Parallel Virtual Machine)</A> <LI><A HREF="Parallel-Processing-HOWTO-3.html#ss3.5">3.5 MPI (Message Passing Interface)</A> <LI><A HREF="Parallel-Processing-HOWTO-3.html#ss3.6">3.6 AFAPI (Aggregate Function API)</A> <LI><A HREF="Parallel-Processing-HOWTO-3.html#ss3.7">3.7 Other Cluster Support Libraries</A> <LI><A HREF="Parallel-Processing-HOWTO-3.html#ss3.8">3.8 General Cluster References</A> </UL> <P> <H2><A NAME="toc4">4.</A> <A HREF="Parallel-Processing-HOWTO-4.html">SIMD Within A Register (e.g., using MMX)</A></H2> <UL> <LI><A HREF="Parallel-Processing-HOWTO-4.html#ss4.1">4.1 SWAR: What Is It Good For?</A> <LI><A HREF="Parallel-Processing-HOWTO-4.html#ss4.2">4.2 Introduction To SWAR Programming</A> <LI><A HREF="Parallel-Processing-HOWTO-4.html#ss4.3">4.3 MMX SWAR Under Linux</A> </UL> <P> <H2><A NAME="toc5">5.</A> <A HREF="Parallel-Processing-HOWTO-5.html">Linux-Hosted Attached Processors</A></H2> <UL> <LI><A HREF="Parallel-Processing-HOWTO-5.html#ss5.1">5.1 A Linux PC Is A Good Host</A> <LI><A HREF="Parallel-Processing-HOWTO-5.html#ss5.2">5.2 Did You DSP That?</A> <LI><A HREF="Parallel-Processing-HOWTO-5.html#ss5.3">5.3 FPGAs And Reconfigurable Logic Computing</A> </UL> <P> <H2><A NAME="toc6">6.</A> <A HREF="Parallel-Processing-HOWTO-6.html">Of General Interest</A></H2> <UL> <LI><A HREF="Parallel-Processing-HOWTO-6.html#ss6.1">6.1 Programming Languages And Compilers</A> <LI><A HREF="Parallel-Processing-HOWTO-6.html#ss6.2">6.2 Performance Issues</A> <LI><A HREF="Parallel-Processing-HOWTO-6.html#ss6.3">6.3 Conclusion - It's Out There</A> </UL> <HR> <A HREF="Parallel-Processing-HOWTO-1.html">Next</A> Previous Contents </BODY> </HTML>