SlideShare a Scribd company logo
Final Presentation ELET 4780
Michael Vistine Katy Rodriguez Ralph Walker
1/34
Michael Vistine
Engineer
2/34
Katy Rodriguez
Engineer
Ralph Walker
Engineer
 Motivation
 Hardware
 Design Description
 Software
 Design Improvements
 Timeline
 Current Status Immediate Tasks
 Conclusion
 Sources
 Questions??
3/34
4/34
Design
• Cluster Computing
• Compact
• Active Cooling
Raspberry Pi
• Low Cost powerful device
• Open Source Code
Modifying Existing Design
• Nodes vs. Performance
• Wireless vs. Wired
Performance
• Add components for usability
5/34
Photo courtesy of
pcworld.com
Pi 1B+ Pi B 2 BeagleBone
Processor 700 MHz 900-1000 MHz 1GHz
Cores 1 4 1
RAM 512 MB 1 GB 512 MB
Peripherals 4 USB Ports 4 USB Ports 2 USB Ports
GPIO Capability 40 pins 40 pins 65 pins
Memory Micro SD slot Micro SD slot 2 GB on board & Micro SD
Price ~$30 ~$35 ~$55
Photo courtesy of
ti.com
Photo courtesy of
adafruit.com
6/34
Photo courtesy of amazon
• 5V per hub
• Plug and play
Insignia - 7-Port USB 2.0 Hub
Photo courtesy of amazon
Wireless Router TP-Link TL WR841N
• 300Mbps wireless
connection
• Adjustable DHCP
settings
• Wireless On/Off switch
• 4 LAN ports
RPI1
7/34
Power
RPI0
(Master
Node)
RPI2
RPI3
Open
MPI
Test.cRouter
8/34
Final Design
• 3D printed using SolidWorks
• Plexiglass
• Wired/Wireless router
• Heat Sinks and PC fans
• Power hub
 OPERATING SYSTEM –
RAPSBIAN
JESSIE(w/NOOBS)
◦ Easy to use
◦ Lightweight OS
◦ Open source
◦ Bash Terminal interface
◦ Linux/Unix kernel
9/34
 Bash Terminal- used to:
◦ Edit and create files to manipulate the OS and ports
 i.e. setting up the host names and mounting drives
◦ Install software packages (i.e. openMPI, nfsserver)
◦ See IP addresses, Node settings and Network connections
 Style of syntax used to operate in Terminal:
◦ $ sudo apt-get install (“file”) – used to install files
◦ $ sudo nano (“file”) – used to edit files
10/34
 OpenMPI:
◦ Message Passing Interface used to implement parallel
computing
◦ Takes the data and breaks it into smaller chunks and
distributes it to the nodes to run simultaneously
◦ This method increases processing speed and efficiency
◦ Can compile and execute programs in C, C++, & Fortran
◦ GCC compiler is used to compile the program to be
processed in a parallel fashion
11/34
 First all packages were updated
◦ Gfortran
◦ Nfs-common & Nfs-kernel-server
◦ Build-essential manpages-dev
◦ openmpi-bin/-doc libopenmpi-dev
◦ Etc.
 Go into the configurations using sudo raspi-config
12/34
 Settings for the master were the same as the slave
nodes:
◦ Set the host names as rpi0
◦ Enable ssh
◦ Overclock to “pi2” setting
◦ Set the memory split to 16
13/34
 Install all the same packages from the master node
 Sudo raspi-config to set all the same system
preferences as the master node
14/34
Photo courtesy of www.raspberrypi.org
15/34
1. # include <stdio.h> //Standard Input/output library
2. # include <mpi.h>
3. int main(int argc, char** argv)
4. {
5. //MPI variables
6. int num_processes;
7. int curr_rank;
8. char proc_name[MPI_MAX_PROCESSOR_NAME];
9. int proc_name_len;
10. //intialize MPI
11. MPI_Init(&argc, &argv);
12. //get the number of processes
13. MPI_Comm_size(MPI_COMM_WORLD, &num_processes);
14.
15. //Get the rank of the current process
16. MPI_Comm_rank(MPI_COMM_WORLD, &curr_rank);
17. // Get the processor name for the current thread
18. MPI_Get_processor_name(proc_name, &proc_name_len);
19. //Check that we're running this process.
20. printf("Calling process %d out of %d on %srn", curr_rank, num_processes,
proc_name);
21. //Wait for all threads ot finish
22. MPI_Finalized();
23. return 0;
24. }
•Creates user specified dummy
processes of equal size
•Allocates the processes
dynamically to each nodes
•Displays the process number
upon completion
 #include <stdio.h>
 #include <math.h>
 #include <mpi.h>
 #define TOTAL_ITERATIONS 10000
 int main(int argc, char *argv[])
 {
 //MPI variables
 int num_processes;
 int curr_rank;
 // keep track of the current for-loop iterations
 int total_iter;
 int step_iter;
 //variables used to calculate pi
 double pi; // the final value
 double curr_pi, h, sum, x; //step variables
 //start up MPI
 MPI_Init(&argc, &argv);
 MPI_Comm_size(MPI_COMM_WORLD, &num_processes);
 MPI_Comm_rank(MPI_COMM_WORLD, &curr_rank);
 //Iterate TOTAL_ITERATIONS to calculate PI within a certain error margin
 for(total_iter = 2; total_iter < TOTAL_ITERATIONS; total_iter++);
 {


16/34
 //init sum
 sum = 0.0;
 //determine step size
 h = 1.0 / (double) total_iter;
 //the current process will perform operations on its rank
 //added by multiples of the total number of threads
 // rank = 3,
 for(step_iter = curr_rank +1; step_iter <= total_iter; step_iter += num_processes)
 {
 //determine the current step
 x = h * ((double) step_iter - 0.5);
 //add the current step values
 sum += (4.0/(1.0 + x * x));
 }
 // resolve the sum into calculated value of pi
 curr_pi = h * sum;
 //reduce all processes' pi values to one value
 MPI_Reduce(&curr_pi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
 }
 // Print out the final value and error
 printf("calculated Pi = %.16frn", pi);
 printf("Relative Error = %.16frn", fabs(pi - M_PI));
 //Wrap up MPI
 MPI_Finalize();
return 0;
 }
17/34
 Set all node IP addresses as static in
◦ Sudo nano /etc/network/interfaces (edit on all nodes)
◦ This step differs between wired and wireless
◦ For wired enter a static etho address
◦ For wireless enter a static address using wlan0
 Set all hostnames to now static IP’s
◦ Sudo nano /etc/hosts (edit on all nodes )
◦ Add in the hostnames and addresses, for example:
◦ rpi0 192.168.0._
◦ rpi1 192.168.0._
 Now we can ssh from one pi to another without
having to type IP addresses
18/34
 Setting up the wireless connection was essentially the
same as setting up the wired connection
 We assigned the ip addresses onto the wireless router
 Then we went in to the etc/network/hosts and added
the new ips with hostnames
 Added at the bottom of /etc/network/interfaces:
iface TP-LINK_7236 inet static
◦ Address 192._._._
◦ Netmask 255.255.255.0
◦ Gateway 192._._._
19/34
 Next a common user was created on all nodes to
allow the nodes to communicate with out the need
for repeated password entry
◦ Sudo useradd –m –u 2345 mpiu
 Next the nodes were mounted onto the master node
◦ Sudo mkdir /mirror //makes the directory
◦ Sudo chown mpiu:mpiu /mirror/ //changes ownership
◦ Sudo service rpcbind start
◦ Sudo update-rc.d rpcbind enable
20/34
 Sudo nano /etc/exports
◦ Line added at bottom of file:
◦ /mirror 192.168.0.0/24(rw,sync)
◦ This line allows all ip addresses from 192.168.0.0 – 192.168.0.255
to be used by this system
◦ This is a possible point of concern when it comes to wireless
communication
 Next nfs server reset and ssh from rpi0->rpi1
 Same thing done to rpi1
 Then “$~sudo mount rpi0:/mirror” actually mounts the
node
 These steps repeated for all slave nodes
21/34
 SSH Keys generated using
◦ Ssh-keygen –t rsa
◦ A passphrase is
recommended
◦ A bitmap of random
characters was then
generated as the key
 Next key is copied to slave
nodes using:
◦ Ssh-copy-id mpiu@rpi1
 “keychain logic” added to file
.bashrc
22/34
Photo courtesy visualgdb.com
 Log in as mpiu on master node using
 Su – mpiu
 Switch to the /mirror/code/ directory which holds the
mpi test programs using “cd”
 Mpicc calc_pi.c –o calc_pi //this line compiles the
program
 Time mpiexec –n 4 –H rpi0-3 calc_pi //this line
executes the program on the master node and
distributes it to the nodes via the mounts
 The output is the solution and the time it took to
execute
23/34
 Here you can
see the .c files
and the
executables in
the directory
 You see the
execution of the
program with
mpiexec
24/34
 Initially we had assumed the code wasn’t working
correctly but this proved to be an incorrect diagnosis
 The times we were seeing were not making much
sense
 We ran the MPI tests on wired and wireless and we
found the processing times to be inconsistent
25/34
 This led us to determine we had an issue with the
mounts on the nodes
 The main issue was that the nodes wouldn’t read
the mirrored programs off the master
 We are still currently in the processes of improving
the design and graphically interpreting the data
26/34
 Wired vs Wireless performance
◦ Test the processing performance of cluster when:
 Hard wired to router
 Using dongles for each node to communicate wirelessly
 Use wireshark to observe packet latency between nodes
 Computational benchmark tests
◦ Using benchmark software to observe total processing power across
all pi’s
◦ Using complicated program as test material to solve with cluster
 Graphical performance info
 Implementation practical applications
 Active Cooling onto the Pi’s
◦ Adding fans to final case design
27/34
Research
Investigate
Improvements
Build Prototype
Implement
Improvements
Build Final
Design
28/34
29/34
Part Price per Item 4Pi's Quantity Total (4) Link
Micro SD's 3.28 6 19.68 http://www.newegg.com/Product/Product.a
Micro USB's 4.69 4 18.76 http://www.amazon.com/AmazonBasics-Mic
Ethernet cables 0.82 4 3.28 http://www.newegg.com/Product/Product.a
Wifi Dongles 7.99 4 31.96 http://www.amazon.com/Kootek-Raspberry
Router (4-8 ports) 33.99 1 33.99 http://www.newegg.com/Product/Product.a
Raspberry Pi's 41.6 4 166.4 http://www.amazon.com/Raspberry-Pi-Mod
Heat sinks 2.41 4 9.64 http://www.amazon.com/Cooling-Aluminium
Dual Router 19.99 1 19.99 http://www.frys.com/product/8445718?site=
Fans 3.95 2 7.9 http://www.tannerelectronics.com
Makers Space 35 1 35 https://dallasmakerspace.org
Power USB 29.99 1 29.99 http://www.bestbuy.com/site/insignia-7-po
Total of All Parts 376.59
 Diagnosing the mounting issue
 Wireless and Wired communication working
 Final equipment list acquired
 Measuring and sketching layout of case structures
for the laser cutter
30/34
 Compare wired vs wireless performance
◦ Detailed documenting and graphing of test results
 Continue to debugging and improving the system
◦ Finish debugging the mounting issue
 Finish first prototype for final case design
◦ Measuring and cutting the structure of the case
31/34
 Wired and wireless connection is complete
 Debugging nfs and mounting issues
◦ Continuously running performance tests
 Final case design blueprint is complete
32/34
 http://www.python.org/doc/current/tut/tut.html
 http://likemagicappears.com/projects/raspberry-pi-cluster/
 http://www.zdnet.com/article/build-your-own-supercomputer-
out-of-raspberry-pi-boards/
 https://Youtu.be/R0Uglgcb5g
 http://www.newegg.com/
 http://www.amazon.com
 http://anllyquinte.blogspot.com/
 http://www.slideshare.net/calcpage2011/mpi4pypdf
33/34
34/34

More Related Content

What's hot

Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDP
Thomas Graf
 
Kernel Recipes 2013 - Nftables, what motivations and what solutions
Kernel Recipes 2013 - Nftables, what motivations and what solutionsKernel Recipes 2013 - Nftables, what motivations and what solutions
Kernel Recipes 2013 - Nftables, what motivations and what solutions
Anne Nicolas
 
CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016]
IO Visor Project
 
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDPDockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
Thomas Graf
 
Kernel Recipes 2013 - Deciphering Oopsies
Kernel Recipes 2013 - Deciphering OopsiesKernel Recipes 2013 - Deciphering Oopsies
Kernel Recipes 2013 - Deciphering Oopsies
Anne Nicolas
 
BPF - All your packets belong to me
BPF - All your packets belong to meBPF - All your packets belong to me
BPF - All your packets belong to me
_xhr_
 
SDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLSSDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLS
NECST Lab @ Politecnico di Milano
 
SDAccel Design Contest: Xilinx SDAccel
SDAccel Design Contest: Xilinx SDAccel SDAccel Design Contest: Xilinx SDAccel
SDAccel Design Contest: Xilinx SDAccel
NECST Lab @ Politecnico di Milano
 
Andrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profitAndrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profit
linuxlab_conf
 
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Adam Dunkels
 
SDAccel Design Contest: Intro
SDAccel Design Contest: IntroSDAccel Design Contest: Intro
SDAccel Design Contest: Intro
NECST Lab @ Politecnico di Milano
 
BPF - in-kernel virtual machine
BPF - in-kernel virtual machineBPF - in-kernel virtual machine
BPF - in-kernel virtual machine
Alexei Starovoitov
 
p4alu: Arithmetic Logic Unit in P4
p4alu: Arithmetic Logic Unit in P4p4alu: Arithmetic Logic Unit in P4
p4alu: Arithmetic Logic Unit in P4
Kentaro Ebisawa
 
Tutorial of SF-TAP Flow Abstractor
Tutorial of SF-TAP Flow AbstractorTutorial of SF-TAP Flow Abstractor
Tutorial of SF-TAP Flow Abstractor
Yuuki Takano
 
Network Automation (Bay Area Juniper Networks Meetup)
Network Automation (Bay Area Juniper Networks Meetup)Network Automation (Bay Area Juniper Networks Meetup)
Network Automation (Bay Area Juniper Networks Meetup)
Alejandro Salinas
 
Network sockets
Network socketsNetwork sockets
Network sockets
Denys Haryachyy
 
Beyond TCP: The evolution of Internet transport protocols
Beyond TCP: The evolution of Internet transport protocolsBeyond TCP: The evolution of Internet transport protocols
Beyond TCP: The evolution of Internet transport protocols
Olivier Bonaventure
 
Bypassing ASLR Exploiting CVE 2015-7545
Bypassing ASLR Exploiting CVE 2015-7545Bypassing ASLR Exploiting CVE 2015-7545
Bypassing ASLR Exploiting CVE 2015-7545
Kernel TLV
 
SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)
SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)
SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)
Yuuki Takano
 
Возможности интерпретатора Python в NX-OS
Возможности интерпретатора Python в NX-OSВозможности интерпретатора Python в NX-OS
Возможности интерпретатора Python в NX-OS
Cisco Russia
 

What's hot (20)

Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDP
 
Kernel Recipes 2013 - Nftables, what motivations and what solutions
Kernel Recipes 2013 - Nftables, what motivations and what solutionsKernel Recipes 2013 - Nftables, what motivations and what solutions
Kernel Recipes 2013 - Nftables, what motivations and what solutions
 
CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016]
 
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDPDockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
 
Kernel Recipes 2013 - Deciphering Oopsies
Kernel Recipes 2013 - Deciphering OopsiesKernel Recipes 2013 - Deciphering Oopsies
Kernel Recipes 2013 - Deciphering Oopsies
 
BPF - All your packets belong to me
BPF - All your packets belong to meBPF - All your packets belong to me
BPF - All your packets belong to me
 
SDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLSSDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLS
 
SDAccel Design Contest: Xilinx SDAccel
SDAccel Design Contest: Xilinx SDAccel SDAccel Design Contest: Xilinx SDAccel
SDAccel Design Contest: Xilinx SDAccel
 
Andrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profitAndrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profit
 
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
 
SDAccel Design Contest: Intro
SDAccel Design Contest: IntroSDAccel Design Contest: Intro
SDAccel Design Contest: Intro
 
BPF - in-kernel virtual machine
BPF - in-kernel virtual machineBPF - in-kernel virtual machine
BPF - in-kernel virtual machine
 
p4alu: Arithmetic Logic Unit in P4
p4alu: Arithmetic Logic Unit in P4p4alu: Arithmetic Logic Unit in P4
p4alu: Arithmetic Logic Unit in P4
 
Tutorial of SF-TAP Flow Abstractor
Tutorial of SF-TAP Flow AbstractorTutorial of SF-TAP Flow Abstractor
Tutorial of SF-TAP Flow Abstractor
 
Network Automation (Bay Area Juniper Networks Meetup)
Network Automation (Bay Area Juniper Networks Meetup)Network Automation (Bay Area Juniper Networks Meetup)
Network Automation (Bay Area Juniper Networks Meetup)
 
Network sockets
Network socketsNetwork sockets
Network sockets
 
Beyond TCP: The evolution of Internet transport protocols
Beyond TCP: The evolution of Internet transport protocolsBeyond TCP: The evolution of Internet transport protocols
Beyond TCP: The evolution of Internet transport protocols
 
Bypassing ASLR Exploiting CVE 2015-7545
Bypassing ASLR Exploiting CVE 2015-7545Bypassing ASLR Exploiting CVE 2015-7545
Bypassing ASLR Exploiting CVE 2015-7545
 
SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)
SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)
SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)
 
Возможности интерпретатора Python в NX-OS
Возможности интерпретатора Python в NX-OSВозможности интерпретатора Python в NX-OS
Возможности интерпретатора Python в NX-OS
 

Similar to Senior Design: Raspberry Pi Cluster Computing

P4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptxP4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptx
tampham61268
 
HPC_MPI_CICD.pptx
HPC_MPI_CICD.pptxHPC_MPI_CICD.pptx
HPC_MPI_CICD.pptx
ObjectAutomation2
 
Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...
Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...
Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...
idsecconf
 
Banog meetup August 30th, network device property as code
Banog meetup August 30th, network device property as codeBanog meetup August 30th, network device property as code
Banog meetup August 30th, network device property as code
Damien Garros
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
Andriy Berestovskyy
 
Introduction to GPUs in HPC
Introduction to GPUs in HPCIntroduction to GPUs in HPC
Introduction to GPUs in HPC
inside-BigData.com
 
Spying on the Linux kernel for fun and profit
Spying on the Linux kernel for fun and profitSpying on the Linux kernel for fun and profit
Spying on the Linux kernel for fun and profit
Andrea Righi
 
Parallel programming using MPI
Parallel programming using MPIParallel programming using MPI
Parallel programming using MPI
Ajit Nayak
 
Building A Linux Cluster Using Raspberry PI #2!
Building A Linux Cluster Using Raspberry PI #2!Building A Linux Cluster Using Raspberry PI #2!
Building A Linux Cluster Using Raspberry PI #2!
A Jorge Garcia
 
Efabless Marketplace webinar slides 2024
Efabless Marketplace webinar slides 2024Efabless Marketplace webinar slides 2024
Efabless Marketplace webinar slides 2024
Nobin Mathew
 
The internet of $h1t
The internet of $h1tThe internet of $h1t
The internet of $h1t
Amit Serper
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
Thomas Graf
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Samsung Open Source Group
 
13048671.ppt
13048671.ppt13048671.ppt
13048671.ppt
LyVu51
 
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
Diane Mueller
 
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin
 
How to Use GSM/3G/4G in Embedded Linux Systems
How to Use GSM/3G/4G in Embedded Linux SystemsHow to Use GSM/3G/4G in Embedded Linux Systems
How to Use GSM/3G/4G in Embedded Linux Systems
Toradex
 
pcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunpcDuino Presentation at SparkFun
pcDuino Presentation at SparkFun
Jingfeng Liu
 
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon
 
Compiling P4 to XDP, IOVISOR Summit 2017
Compiling P4 to XDP, IOVISOR Summit 2017Compiling P4 to XDP, IOVISOR Summit 2017
Compiling P4 to XDP, IOVISOR Summit 2017
Cheng-Chun William Tu
 

Similar to Senior Design: Raspberry Pi Cluster Computing (20)

P4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptxP4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptx
 
HPC_MPI_CICD.pptx
HPC_MPI_CICD.pptxHPC_MPI_CICD.pptx
HPC_MPI_CICD.pptx
 
Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...
Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...
Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...
 
Banog meetup August 30th, network device property as code
Banog meetup August 30th, network device property as codeBanog meetup August 30th, network device property as code
Banog meetup August 30th, network device property as code
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
 
Introduction to GPUs in HPC
Introduction to GPUs in HPCIntroduction to GPUs in HPC
Introduction to GPUs in HPC
 
Spying on the Linux kernel for fun and profit
Spying on the Linux kernel for fun and profitSpying on the Linux kernel for fun and profit
Spying on the Linux kernel for fun and profit
 
Parallel programming using MPI
Parallel programming using MPIParallel programming using MPI
Parallel programming using MPI
 
Building A Linux Cluster Using Raspberry PI #2!
Building A Linux Cluster Using Raspberry PI #2!Building A Linux Cluster Using Raspberry PI #2!
Building A Linux Cluster Using Raspberry PI #2!
 
Efabless Marketplace webinar slides 2024
Efabless Marketplace webinar slides 2024Efabless Marketplace webinar slides 2024
Efabless Marketplace webinar slides 2024
 
The internet of $h1t
The internet of $h1tThe internet of $h1t
The internet of $h1t
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
 
13048671.ppt
13048671.ppt13048671.ppt
13048671.ppt
 
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
OpenShift Origin Community Day (Boston) Writing Cartridges V2 by Jhon Honce
 
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
OpenShift Origin Community Day (Boston) Extending OpenShift Origin: Build You...
 
How to Use GSM/3G/4G in Embedded Linux Systems
How to Use GSM/3G/4G in Embedded Linux SystemsHow to Use GSM/3G/4G in Embedded Linux Systems
How to Use GSM/3G/4G in Embedded Linux Systems
 
pcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunpcDuino Presentation at SparkFun
pcDuino Presentation at SparkFun
 
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
 
Compiling P4 to XDP, IOVISOR Summit 2017
Compiling P4 to XDP, IOVISOR Summit 2017Compiling P4 to XDP, IOVISOR Summit 2017
Compiling P4 to XDP, IOVISOR Summit 2017
 

Recently uploaded

一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
ydteq
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
bakpo1
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
AafreenAbuthahir2
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
SupreethSP4
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
seandesed
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
gerogepatton
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
ankuprajapati0525
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
BrazilAccount1
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
zwunae
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
SamSarthak3
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
Kamal Acharya
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
Kamal Acharya
 

Recently uploaded (20)

一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
 

Senior Design: Raspberry Pi Cluster Computing

  • 1. Final Presentation ELET 4780 Michael Vistine Katy Rodriguez Ralph Walker 1/34
  • 3.  Motivation  Hardware  Design Description  Software  Design Improvements  Timeline  Current Status Immediate Tasks  Conclusion  Sources  Questions?? 3/34
  • 4. 4/34 Design • Cluster Computing • Compact • Active Cooling Raspberry Pi • Low Cost powerful device • Open Source Code Modifying Existing Design • Nodes vs. Performance • Wireless vs. Wired Performance • Add components for usability
  • 5. 5/34 Photo courtesy of pcworld.com Pi 1B+ Pi B 2 BeagleBone Processor 700 MHz 900-1000 MHz 1GHz Cores 1 4 1 RAM 512 MB 1 GB 512 MB Peripherals 4 USB Ports 4 USB Ports 2 USB Ports GPIO Capability 40 pins 40 pins 65 pins Memory Micro SD slot Micro SD slot 2 GB on board & Micro SD Price ~$30 ~$35 ~$55 Photo courtesy of ti.com Photo courtesy of adafruit.com
  • 6. 6/34 Photo courtesy of amazon • 5V per hub • Plug and play Insignia - 7-Port USB 2.0 Hub Photo courtesy of amazon Wireless Router TP-Link TL WR841N • 300Mbps wireless connection • Adjustable DHCP settings • Wireless On/Off switch • 4 LAN ports
  • 8. 8/34 Final Design • 3D printed using SolidWorks • Plexiglass • Wired/Wireless router • Heat Sinks and PC fans • Power hub
  • 9.  OPERATING SYSTEM – RAPSBIAN JESSIE(w/NOOBS) ◦ Easy to use ◦ Lightweight OS ◦ Open source ◦ Bash Terminal interface ◦ Linux/Unix kernel 9/34
  • 10.  Bash Terminal- used to: ◦ Edit and create files to manipulate the OS and ports  i.e. setting up the host names and mounting drives ◦ Install software packages (i.e. openMPI, nfsserver) ◦ See IP addresses, Node settings and Network connections  Style of syntax used to operate in Terminal: ◦ $ sudo apt-get install (“file”) – used to install files ◦ $ sudo nano (“file”) – used to edit files 10/34
  • 11.  OpenMPI: ◦ Message Passing Interface used to implement parallel computing ◦ Takes the data and breaks it into smaller chunks and distributes it to the nodes to run simultaneously ◦ This method increases processing speed and efficiency ◦ Can compile and execute programs in C, C++, & Fortran ◦ GCC compiler is used to compile the program to be processed in a parallel fashion 11/34
  • 12.  First all packages were updated ◦ Gfortran ◦ Nfs-common & Nfs-kernel-server ◦ Build-essential manpages-dev ◦ openmpi-bin/-doc libopenmpi-dev ◦ Etc.  Go into the configurations using sudo raspi-config 12/34
  • 13.  Settings for the master were the same as the slave nodes: ◦ Set the host names as rpi0 ◦ Enable ssh ◦ Overclock to “pi2” setting ◦ Set the memory split to 16 13/34
  • 14.  Install all the same packages from the master node  Sudo raspi-config to set all the same system preferences as the master node 14/34 Photo courtesy of www.raspberrypi.org
  • 15. 15/34 1. # include <stdio.h> //Standard Input/output library 2. # include <mpi.h> 3. int main(int argc, char** argv) 4. { 5. //MPI variables 6. int num_processes; 7. int curr_rank; 8. char proc_name[MPI_MAX_PROCESSOR_NAME]; 9. int proc_name_len; 10. //intialize MPI 11. MPI_Init(&argc, &argv); 12. //get the number of processes 13. MPI_Comm_size(MPI_COMM_WORLD, &num_processes); 14. 15. //Get the rank of the current process 16. MPI_Comm_rank(MPI_COMM_WORLD, &curr_rank); 17. // Get the processor name for the current thread 18. MPI_Get_processor_name(proc_name, &proc_name_len); 19. //Check that we're running this process. 20. printf("Calling process %d out of %d on %srn", curr_rank, num_processes, proc_name); 21. //Wait for all threads ot finish 22. MPI_Finalized(); 23. return 0; 24. } •Creates user specified dummy processes of equal size •Allocates the processes dynamically to each nodes •Displays the process number upon completion
  • 16.  #include <stdio.h>  #include <math.h>  #include <mpi.h>  #define TOTAL_ITERATIONS 10000  int main(int argc, char *argv[])  {  //MPI variables  int num_processes;  int curr_rank;  // keep track of the current for-loop iterations  int total_iter;  int step_iter;  //variables used to calculate pi  double pi; // the final value  double curr_pi, h, sum, x; //step variables  //start up MPI  MPI_Init(&argc, &argv);  MPI_Comm_size(MPI_COMM_WORLD, &num_processes);  MPI_Comm_rank(MPI_COMM_WORLD, &curr_rank);  //Iterate TOTAL_ITERATIONS to calculate PI within a certain error margin  for(total_iter = 2; total_iter < TOTAL_ITERATIONS; total_iter++);  {   16/34
  • 17.  //init sum  sum = 0.0;  //determine step size  h = 1.0 / (double) total_iter;  //the current process will perform operations on its rank  //added by multiples of the total number of threads  // rank = 3,  for(step_iter = curr_rank +1; step_iter <= total_iter; step_iter += num_processes)  {  //determine the current step  x = h * ((double) step_iter - 0.5);  //add the current step values  sum += (4.0/(1.0 + x * x));  }  // resolve the sum into calculated value of pi  curr_pi = h * sum;  //reduce all processes' pi values to one value  MPI_Reduce(&curr_pi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);  }  // Print out the final value and error  printf("calculated Pi = %.16frn", pi);  printf("Relative Error = %.16frn", fabs(pi - M_PI));  //Wrap up MPI  MPI_Finalize(); return 0;  } 17/34
  • 18.  Set all node IP addresses as static in ◦ Sudo nano /etc/network/interfaces (edit on all nodes) ◦ This step differs between wired and wireless ◦ For wired enter a static etho address ◦ For wireless enter a static address using wlan0  Set all hostnames to now static IP’s ◦ Sudo nano /etc/hosts (edit on all nodes ) ◦ Add in the hostnames and addresses, for example: ◦ rpi0 192.168.0._ ◦ rpi1 192.168.0._  Now we can ssh from one pi to another without having to type IP addresses 18/34
  • 19.  Setting up the wireless connection was essentially the same as setting up the wired connection  We assigned the ip addresses onto the wireless router  Then we went in to the etc/network/hosts and added the new ips with hostnames  Added at the bottom of /etc/network/interfaces: iface TP-LINK_7236 inet static ◦ Address 192._._._ ◦ Netmask 255.255.255.0 ◦ Gateway 192._._._ 19/34
  • 20.  Next a common user was created on all nodes to allow the nodes to communicate with out the need for repeated password entry ◦ Sudo useradd –m –u 2345 mpiu  Next the nodes were mounted onto the master node ◦ Sudo mkdir /mirror //makes the directory ◦ Sudo chown mpiu:mpiu /mirror/ //changes ownership ◦ Sudo service rpcbind start ◦ Sudo update-rc.d rpcbind enable 20/34
  • 21.  Sudo nano /etc/exports ◦ Line added at bottom of file: ◦ /mirror 192.168.0.0/24(rw,sync) ◦ This line allows all ip addresses from 192.168.0.0 – 192.168.0.255 to be used by this system ◦ This is a possible point of concern when it comes to wireless communication  Next nfs server reset and ssh from rpi0->rpi1  Same thing done to rpi1  Then “$~sudo mount rpi0:/mirror” actually mounts the node  These steps repeated for all slave nodes 21/34
  • 22.  SSH Keys generated using ◦ Ssh-keygen –t rsa ◦ A passphrase is recommended ◦ A bitmap of random characters was then generated as the key  Next key is copied to slave nodes using: ◦ Ssh-copy-id mpiu@rpi1  “keychain logic” added to file .bashrc 22/34 Photo courtesy visualgdb.com
  • 23.  Log in as mpiu on master node using  Su – mpiu  Switch to the /mirror/code/ directory which holds the mpi test programs using “cd”  Mpicc calc_pi.c –o calc_pi //this line compiles the program  Time mpiexec –n 4 –H rpi0-3 calc_pi //this line executes the program on the master node and distributes it to the nodes via the mounts  The output is the solution and the time it took to execute 23/34
  • 24.  Here you can see the .c files and the executables in the directory  You see the execution of the program with mpiexec 24/34
  • 25.  Initially we had assumed the code wasn’t working correctly but this proved to be an incorrect diagnosis  The times we were seeing were not making much sense  We ran the MPI tests on wired and wireless and we found the processing times to be inconsistent 25/34
  • 26.  This led us to determine we had an issue with the mounts on the nodes  The main issue was that the nodes wouldn’t read the mirrored programs off the master  We are still currently in the processes of improving the design and graphically interpreting the data 26/34
  • 27.  Wired vs Wireless performance ◦ Test the processing performance of cluster when:  Hard wired to router  Using dongles for each node to communicate wirelessly  Use wireshark to observe packet latency between nodes  Computational benchmark tests ◦ Using benchmark software to observe total processing power across all pi’s ◦ Using complicated program as test material to solve with cluster  Graphical performance info  Implementation practical applications  Active Cooling onto the Pi’s ◦ Adding fans to final case design 27/34
  • 29. 29/34 Part Price per Item 4Pi's Quantity Total (4) Link Micro SD's 3.28 6 19.68 http://www.newegg.com/Product/Product.a Micro USB's 4.69 4 18.76 http://www.amazon.com/AmazonBasics-Mic Ethernet cables 0.82 4 3.28 http://www.newegg.com/Product/Product.a Wifi Dongles 7.99 4 31.96 http://www.amazon.com/Kootek-Raspberry Router (4-8 ports) 33.99 1 33.99 http://www.newegg.com/Product/Product.a Raspberry Pi's 41.6 4 166.4 http://www.amazon.com/Raspberry-Pi-Mod Heat sinks 2.41 4 9.64 http://www.amazon.com/Cooling-Aluminium Dual Router 19.99 1 19.99 http://www.frys.com/product/8445718?site= Fans 3.95 2 7.9 http://www.tannerelectronics.com Makers Space 35 1 35 https://dallasmakerspace.org Power USB 29.99 1 29.99 http://www.bestbuy.com/site/insignia-7-po Total of All Parts 376.59
  • 30.  Diagnosing the mounting issue  Wireless and Wired communication working  Final equipment list acquired  Measuring and sketching layout of case structures for the laser cutter 30/34
  • 31.  Compare wired vs wireless performance ◦ Detailed documenting and graphing of test results  Continue to debugging and improving the system ◦ Finish debugging the mounting issue  Finish first prototype for final case design ◦ Measuring and cutting the structure of the case 31/34
  • 32.  Wired and wireless connection is complete  Debugging nfs and mounting issues ◦ Continuously running performance tests  Final case design blueprint is complete 32/34
  • 33.  http://www.python.org/doc/current/tut/tut.html  http://likemagicappears.com/projects/raspberry-pi-cluster/  http://www.zdnet.com/article/build-your-own-supercomputer- out-of-raspberry-pi-boards/  https://Youtu.be/R0Uglgcb5g  http://www.newegg.com/  http://www.amazon.com  http://anllyquinte.blogspot.com/  http://www.slideshare.net/calcpage2011/mpi4pypdf 33/34
  • 34. 34/34