Distributed Computing
With Raspberry Pi
Aim of the project
The main aim of the project is to make
cluster rack with Raspberry Pi.
It can be used as a testing server and
playground for research and development.
Multiple raspberry pi work much faster as
compared to single processor.
What is Raspberry Pi?
TheRaspberry Piis a low cost, credit-card sized computer
that plugs into a computer monitor or TV, and uses a
standard keyboard and mouse. It is a capable little device
that enables people of all ages to explore computing, and
to learn how to program in languages like Scratch and
Python.
Cluster based computing
Acomputer clusterconsists of a set of
loosely connected or tightly
connectedcomputersthat work together so
that in many respects they can be viewed
as a single system.
Desirable Properties of a Clustering Algorithm
Scalability (in terms of both time and
space)
Ability to deal with different data types
Minimal requirements for domain
knowledge to
determine input parameters
Able to deal with noise and outliers
Insensitive to order of input records
Incorporation of user-specified constraints
Interpretability and usability
Connecting Raspberry Pis
Connecting all the raspberry pis to router
using LAN cable.
Assigning and dedicating the IPs to all
raspberry pi with DHCP Protocol.
Providing all raspberry pi with RSA key or
primary key to establish communication
between them.
Making one of the raspberry pi as load
balancer.
Need for the previous
steps
IPs are dedicated so the python code in pis
can distribute data to exact pi each time for
computing.
The RSA key are provided so that the pis
can communicate to each other without
authenticating each time.
A load balancer has a task to assign the job
to each raspberry pi.
Tools Used
Wnet watcher
WinSCP
Putty
Task 1
Providing each raspberry pi with a
dedicated screen and input device(not
possible)
Using Putty to login into each raspberry pi
and,
WinSCP to access terminal of each pi on a
single screen.
Task 2
After getting access to each pis terminal a
our job was to give some task that can run
on single pi and on cluster too.
Preparing merge sort python code for single
pi.
Running code on each pi and calculating
time taken.(44.048 sec for random array of
2L elements)
Task 3
Making a client server architecture to make
communication between load balancer and
other pis.
Assigning one pi as a server and other pis
as client.
Running the python code for merge sort for
same 2L random elements and calculating
time.(24.535 sec)
Server Running
Client Running
Time with Single Pi
Time on Distributed
System
Modules in the Pi
Server Module([Link])
Client Module([Link])
Task module for single pi ([Link])
Task module for distributed
system([Link])
Main focus
Data Analysis
To learn aspects of cluster computing
Parallel Processing
Hadoop in general
How servers works
Advantages
Low Cost
Higher Efficiency
Software like Hadoop is Open Source and
hence can be used freely! Therefore easing
the research work
Aspects of Server based infrastructure stack
will be known
Pi Connection to Screen
Booting Pi for first use
Thank You