element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Personal Blogs
  • Community Hub
  • More
Personal Blogs
Legacy Personal Blogs My attempt at building a Raspberry Pi Supercomputer
  • Blog
  • Documents
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: cortmeyer
  • Date Created: 29 Jan 2013 11:34 PM Date Created
  • Views 1530 views
  • Likes 0 likes
  • Comments 10 comments
  • raspberry
  • attempt
  • pi
  • building
  • at
  • supercomputer
  • my
  • a
Related
Recommended

My attempt at building a Raspberry Pi Supercomputer

cortmeyer
cortmeyer
29 Jan 2013

A few of us were discussing the processing power of all the new maker kits as well as what actually defines a single board computer.  We discussed how boards like the Quad core SABRE Lite board have enough power to run a tablet but are divided on what the Raspberry Pi can do from a sheer computing standpoint.  Sure, it has great graphics processing capability, but how can the processing power of the Pi be increased?  Being an analog guy at heart and feeling left out of what all the “cool kids” were playing with, I thought I’d take on the challenge to see how to really beef up the processing power of the Pi.

 

After a bit of searching on cool Pi projects, I found a video on using multiple Raspberry Pis as a supercomputer - http://www.southampton.ac.uk/~sjc/raspberrypi/

 

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

This gave a good overview of what they were doing with the Pi, so I looked further into the actual details.  One of the creators had a description of how to build one from scratch -http://www.southampton.ac.uk/~sjc/raspberrypi/pi_supercomputer_southampton.htm

 

He gives a good overview of mounting the wheezy raspbian image to get the Pi ready.  That’s where things went downhill quickly.  He jumps right into MPI, a term I have not heard of, and then throws Fortran into the mix.  It appears that I now have to go back to my old college programming days using a VAX, as well as learning the latest parallel processing terms and code.  I now have to span 25 years of programming to tell two Raspberry Pi’s how to share nicely?   So much for trying to get by with my limited “C” knowledge. I will look into this further as I want to get up to speed.  I think I'll start with the media server demo http://www.element14.com/community/groups/raspberry-pi/blog/2012/11/08/build-a-raspberry-pi-media-center, just to build up my confidence.  If anyone actually gets this going, feel free to jump in and let me know how it goes.

  • Sign in to reply

Top Comments

  • Former Member
    Former Member over 12 years ago +2
    Just finished mine. Worked great! Documented it at http://www.rpural.net/mpich
  • Former Member
    Former Member over 12 years ago +1
    We're a group of college students at UIUC - the University of Illinois at Urbana-Champaign and we built something similar last november. We have one with 17 Pi's sitting in my room now. We found that we…
  • Former Member
    Former Member over 12 years ago

    Just finished mine. Worked great! Documented it at http://www.rpural.net/mpich

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Former Member
    Former Member over 12 years ago

    Thanks for the help Ben.  I will definitely have to look into this.  I look forward to experiment with this.

     

    JoelQQ

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Former Member
    Former Member over 12 years ago in reply to Former Member

    Hi Joel,

     

    I am definitely NOT the expert to ask.  I did take a class in college on parallel compiler 20+ years ago but that was about it.  However, you need to simply realize that you need to install some version of Linux, then install MPI (Message Parallel Interface) which is a widely adopted standard on how to pass messages and data between connected computers.  Then you need to install your programming language of choice with support for MPI (usually via a MPI library). 

     

    There are tons of resources on how to write a parallel program.  Simply google parallel programming, MPI, and your programming language of choice.  I went to Amazon and search for "parallel programming" and tons of books come up.  Look for titles with MPI in them.  Here is one, for example, that looks promising:

    http://www.amazon.com/Parallel-Programming-MPI-Peter-Pacheco/dp/1558603395/ref=sr_1_4?s=books&ie=UTF8&qid=1359757538&sr=1-4&keywords=MPI+fortran

     

    Here is a web page that gives a good intro on programming Fortran with MPI.

    http://condor.cc.ku.edu/~grobe/docs/intro-MPI.shtml

     

    Good luck,

    Ben

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Former Member
    Former Member over 12 years ago in reply to Former Member

    Thanks for the help Ben.  Do you know of any resources relating to programing to use multiple R-Pis?
    JoelQQ

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • niftymitch
    niftymitch over 12 years ago

    I have built one of these small clusters and it is a grand way to explore parallel programming on a budget.

     

    Step one is to get a couple two, four or five systems up running and identical.

    Start with wheezy raspbian because the hard float (hf) ABI  is an advantage.

    Update it: sudo apt-get update; sudo apt-get upgrade

     

    Step two is to network all the boards so you can ssh to each without a password.

     

    Step three is to compile and load one of the current versions of MPI (message

    passing interface) software.   The latest compiles and runs well enough that

    it is worth checking for a prebuilt version that can be installed vi apt-get or

    aptitude.  Doing this will require compilers and run time libraries.

     

    Step next; compile a small standard benchmark, copy it to each of the nodes (boards)

    and run it.   To coordinate this the tool "mpirun" is often the correct choice however

    on large clusters a queue manager is used to share, queue, bill and otherwise

    manage the systems.

     

    Results: correct, excelent teaching tool but not too speedy.  

     

    What is MPI and how does it work:   One way to think about MPI is

    to start with a very long tape from a ten-key adding machine or a grocery store.

    By cutting the tape into N bits N people can add up their bit of tape

    then those sub-answers can be merged and "finalized".  The messages

    passed from rank0 to other ranks can be data, offsets into a file, file name per rank,

    progress and more.    One analogy is to have N people sitting arround a

    table.   Pass mesages on 3x5 colored note cards and file folders.   Compare and

    contrast a round table, a long skinny rectangle table.

     

    Important and exagerated issues common to all MPI clusters.   Latency:

    latency is never low enough and programming to manage latency is a bonus.

    Bandwidth: bandwidth is key moving data unnecessarily, twice or more slows down the

    fastest cluser.  Blunders here are obvious.   Algorithms: there are many ways

    to skin a cat/ divide up a problem and when well chosen speed things a lot.

    ETC.....

     

    Value:  Perfect for the goals of R-Pi   i.e. teaching... students can build and

    learn how to use clusters for pennies on the dollar.  If each student has

    two boards he/she can start.  If a class of 16 each brings their boards to

    a lab the 2 node homework can be run on 2, 4, 8, 16, 32 nodes (ranks)

    evaluated, profiled, debugged.  Batch and billing systems developed and tested..

    Slurp on a smoothy and ponder "Slurm" without getting "Torqued" out.

     

    Note: MPI can be coded using with C, FORTRAN, Python, C++ 

    MPI is not the only way to run code in parallel.  Parallel programming

    is hard yet it is currently the best way to solve many problems.

    Many multi core laptops can run circles arround a Pi cluster but

    you cannot interconnect 16 student laptops together in a student lab

    with the same ease and results.

     

    SUMMARY:  Ponder how one learns how to use a million+ rank (core) cluster.  If each

    core is about a half a grand each....   well you fill in the blanks and do the math.  

     

    The R-Pi is a win.  

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube