- Raspberry Pi (RPi)
- Parallel Computing
The purpose of this post is to learn parallel computing by using a Raspberry Pi processor. These are my notes and reference links. The goal is to execute an application, using parallel computing priciples, in a multi-thread environment. The Raspbian Linux OS on the Raspberry Pi will be used used with MPICH2) Message Passing Interface) to run a C application (Probably a Pi estimate) using multi-threading..Once this is accomplished, the aplication should be easily portable to a parallel multip RPi system.
“The team wants to see this low-cost system as a starting point to inspire and enable students to apply high-performance computing and data handling to tackle complex engineering and scientific challenges as part of our on-going outreach activities.”
Raspberry Pi (RPi)
What is a Raspberry Pi?
“The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It is a capable little computer which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.”
Ordered from Newarkelement14 electronics
- Basic Raspberry Pi B Configuration.
2 USB 2.0 sockets
10⁄100 BaseT Ethernet ports
Linux operating system
SD card socket
3.5mm audio out socket
Raspberry Pi HD video camera connecto
Size: 85.6 x 53.98 x 17mm
- RASPBERRY-PI-RASPBERRY-PI/8GB-USD-MODEL B – 8GB SDCard W/ NOOBS PRE-INSTALLED
- ADAFRUIT INDUSTRIES-814-MINIATURE WIFI MODULE, RASPBERRY PI
- PRO SIGNAL-RP006-AUDIO/VIDEO CABLE, HDMI, 1M, BLACK
- PRO SIGNAL-RPUSB1.8-COMPUTER CABLE, USB A PLUG TO MICRO USB B PLUG, 1.8M, BLACK
- ADAFRUIT INDUSTRIES-501-USB PORT POWER SUPPLY (AC ADAPTER), 5V, 1A (1000mA)
- USB Keyboard
- USB Mouse
- USB Hub w/wall power adaptor
- TP-Link TL-SF1008D 8-Port 10/100Mbps Unmanaged Desktop Switch – for a cluster.
- A 4 GB sd card is minimum required and is acceptable for average user. Also,iIt is highly recommended to use a powered hub. Quoted in relation to wfi.”
- Use NOOBS on pre-installed SD card
- Raspbian Linux OS – Raspbian is a free operating system based on Debian optimized for the Raspberry Pi hardware. Raspbian provides more than a pure OS: it comes with over 35,000 packages, pre-compiled software bundled in a nice format for easy installation on your Raspberry Pi.
- Message Passing Interface (MPI) MPICH2 – to provide an MPI implementation that efficiently supports different computation and communication platforms including commodity clusters (desktop systems, shared-memory systems, multicore architectures), high-speed networks and proprietary high-end computing systems (Blue Gene, Cray)
Bringup and configuration of RPi
- The IP address of the RPi is needed to use X11 through the Mac. Download the app “Lanscan” from the app store. After install click the green go button to do a full scan of your network. The IP address of the RPi will be there, if connected.
- In terminal mode on the Mac:
ssh -X email@example.com
(password is raspberry
- Xquartz is the X11.app for Mountain Lion.
- pico is my editor.
- Addional links, if needed:
- Raspberry Pi Downloads has instructions for installing from scratch. The card I ordered already has NOOBS and the group of OS’s on the SD card..
- Raspberry PI Operating System Installation – Raspbian using NOOB - video. Shows how to setup and install the Raspbian operating sytstem on a Raspberry PI and SD card for the first time. Uses NOOBS 1.3 to install the software.
Raspberry Pi and Raspian References
- Raspberry Pi Homepage and News
- Raspberry Pi FAQ
- Raspberry Pi Forums
- Beginners Subforum
Inte Video series is a complete listing of all the lectures including lesson plans and materials. I could not get a downluadable copy of the course materials.
I have viewed the following videos on Youtube:
- Introduction to Parallel Programming video lecture series – Part 01 “Why Parallel? Why Now?” - Video
- Introduction to Parallel Programming video lecture series — Part 02 “Parallel Decomposition Methods”
- Introduction to Parallel Programming video lecture series – Part 03 “Finding Parallelism” Video
- Introduction to Parallel Programming video lecture series – Part 04 “Shared Memory Considerations” Video
- Introduction to Parallel Programming video lecture series – Part 05 Video
- Series TOC
MPICH2 (Message Passing Interface)
“MPICH is a freely available, portable implementation of MPI, a standard for message-passing for distributed-memory applications used in parallel computing. MPICH is Free Software and is available for most flavours of Unix (including Linux and Mac OS X) and Microsoft Windows.
The CH part of the name was derived from “Chameleon”, which was a portable parallel programming library developed by William Gropp, one of the founders of MPICH.
MPICH2 is one of the most popular implementations of MPI. It is used as the foundation for the vast majority of MPI implementations including IBM MPI (for Blue Gene), Intel MPI, Cray MPI, Microsoft MPI, Myricom MPI, OSU MVAPICH/MVAPICH2, and many others.”
- Norm Matloff’s MPICH2 MPI Tutorial is a good supplement for compiling, executing and debugging the mpich2 program in a parallel environment..
- *Hints for Debugging Parallel Programs
- Norm Matloff’s Debugging Tutorial - Has links to debugging tools