This project's funding goal was not reached on May 27, 2014.
This project's funding goal was not reached on May 27, 2014.
It is our intent to build a computing cluster enclosure that houses small single board computers (SBCs) and the required networking hardware. This enables the enclosure to be portable, modular and docked into a desktop computer's 5 1/4" drive bay. Our Kickstarter campaign is planned around the steps needed to go from our working prototype to being able to build a production model.
The need to understand and develop in a distributed computing environment has never been greater. To build multi-processing applications where high-availability, security and performance are key indicators of success still requires access to expensive hardware and a clustered computing environment. It is possible to build an experimentation cluster using someone elses' Infrastructure as a Service (IaaS) offering, but some vital skills like maintenance and configuration are not learned. They are left to the skilled professionals at the cloud provider. Some people want to learn and exercise those skills in their own "sandbox".
With the advent of very small SBCs like the Raspberry Pi and BeagleBone Black, computing horsepower is now available in a compact, low power and inexpensive package. When networked together, these systems make a highly scaleable cluster that provides everything needed to study distributed computing and MPI, the message passing interface software in use by most of the world's fastest supercomputers.
This project is intended to determine what a commercial version of the existing prototypes would need in order to be put into a full production model. We will be sourcing materials, developing software, creating hardware and documentation, and executing several pilot runs of dozens of units.
The actual costs to perform the engineering work, software development, documentation, testing and certifications will far exceed the target fundraising goal of the Kickstarter campaign. The purpose of raising funds in Kickstarter is to provide coverage of the variable (or per unit) costs involved in making the prototype and pilot units. This allows us to ramp up production in a lean manner and gauge market demand from early adopters. We don't want to make too many or too few. The rewards are structured according to how much we estimate the products will take to initially build. Post-campaign, production pricing may be slightly more or less, depending on the accuracy of our estimates.
The products are intended to be installed in computer labs and learning environments. Most units will be put to work in high schools and colleges to help STEM (Science, Technology, Engineering and Mathematics) curricula instructors build courses in High-Performance Computing (HPC). Hobbyists and remote learners will also find the form factor convenient and unobtrusive. Even SBC owners who have purchased several Raspberry Pis or BeagleBone Blacks may find the enclosure provides a handy case that helps provide clean power to their experiments.
We will be designing mounting brackets and a front bezel for the enclosure as part of the project. Additional work needs to be completed on testing, the use of more than one SBC cluster per computer case and whether or not the enclosure will need a fan. We anticipate having the remaining engineering work done by the end of May, 2014 and all parts sourced by the end of June, 2014. We are hoping to locally source as much of the manufacturing as possible but RPis will need to be imported and BeagleBone Blacks are in short supply.
The software distribution for the SBCs and host computers will be ready by the beginning of June as well. As a product, we intend to develop the distribution channels during the months of June and July and have the Shopping Cart ready on the notionovus.com website by the beginning of August.
Besides Brian Anderson, this project relies on contributions by several team members.
Joseph A. Driscoll, PhD
Dr. Driscoll has worked in industry as a software developer in the areas of Internet content delivery and bioinformatics. He was an Assistant Professor of Computer Science at Middle Tennessee State University. In 2011 he moved to Bradley University, where he was first an Assistant Professor of Engineering Physics, and then became an Assistant Professor of Electrical and Computer Engineering.
Dr. Driscoll's primary research areas are intelligent robotics, high-performance computing (HPC), and MEMS/NEMS (micro/nano electromechanical system) device simulation. He works with neural networks, genetic algorithms, computer vision, and other forms of artificial intelligence. Many types of robots are used in his projects, including flying, walking, and wheeled robots. As part of his HPC work, he has developed courses and several parallel computing systems.
Dr. Driscoll has a Ph.D. in Electrical Engineering from Vanderbilt University, where his research was in the area of intelligent robotics. He also has a Ph.D. in physics, where his interests include theoretical and computational physics of nanoscale systems.
Aaron Pfalzgraf is a senior in the Electrical and Computer Engineering program at Bradley University. Some of his current projects include a speaker recognition system to be implemented as a possible method of security for autonomous vehicles. He is also working on a research project with Dr. Joseph Driscoll on a Raspberry Pi supercomputing cluster for education.
Alexandra Burke is a senior in the mechanical engineering department at Bradley University. Her projects include development of a high mileage vehicle for the Shell Eco Marathon competition, and a project to create an autonomous tree-climbing robot with Dr. Joseph Driscoll. She has also written manuals for Briggs & Stratton lawnmower engine teardown and assembly, a water jet machine, a 3D printer, and an injection mold machine.
Dennis JM Donahue III
Dennis Donahue III is an experienced, highly effective intellectual property attorney, manager, and business advisor, with expertise in all areas of intellectual property law in corporate and private practice. After two decades as both an aerospace engineer and then a leader in large midwest-based law firm, Dennis launched his own practice. CreatiVenture Law, LLC is the realization of his dream to work side by side with entrepreneurs and those on the cutting edge of technology and business. His clients range from small inventors to mutli-million dollar technology, manufacturing, and retail companies.
Dennis has also served as an Adjunct Professor at St. Louis University School of Law, teaching “Anatomy of a Patent.” He offers seminars on Intellectual Property law to business leaders from companies of all sizes, as well as local business networking groups.
INTEGRIS Engineering is a company of passionate engineers specializing in product engineering throughout the New Product Introduction process. Whether it’s conceptualization, 3D modeling, computer simulation, prototyping, testing, procurement or project management, INTEGRIS executes all that is involved in creating new or improving existing products. Their goal is to develop well engineered products that fill a need and leave a lasting impression.
Partnering with INTEGRIS has filled a need, which has allowed our electrical and software team members to focus on their areas of expertise. INTEGRIS’ experience and interests in the startup community make them a perfect partner. Visit their website at engineering.integrisgp.com to learn more of the spirit of the company.
Video Skit Actors: Ken and Connie Zurski
There are several projects related to the SBC enclosure that we will invest our effort in if there is adequate additional funding.
Create 2-up and 3-up enclosures. In most desktop cases there is room for multiple enclosures. The advantage of a 2-up enclosure would be to put 6 SBCs on one 8-port switch (lower power, faster network). A 3-up arrangement would allow for ten SBCs (a three high cage allows for more room and a 12-port switch enables lower power per CPU, an additional CPU and faster networking) to share a custom 12-port switch, all enclosed in a 5 1/4" x 3 drives high form factor.
Create an open source cluster node. While the current crop of SBCs are ideal for general-purpose hobby and educational use, There are several modifications that could be made to optimize these platforms into a smaller, faster, more reliable, lower power, less expensive cluster node. We will evaluate the new Raspberry Pi Compute Module in an effort to maximize performance based on power requirements and cost.
Build a hub for HPC learning on the web. The HPC world is somewhat fragmented in direction and thought. A StackExchange community could be built for supporting experimenters and educators. A website that hosts sample code, articles, distributions and discussions would help to bring parallel processing out of its niche and into the mainstream.
Look also for further efforts towards HPC in STEM curricula involving SBCs like the Raspberry Pi Compute Module.
We have made several prototypes already and understand what labor and materials are involved. The questions that the Kickstarter campaign is going to help us answer is the best source for the materials, best methods for assembly, whether outsourcing will be necessary, what options we have if we are short materials to make production, what challenges face us in exporting the finished product, etc.
SBC (Raspberry Pi and BeagleBone Black alike) availability can be a challenge. We will need to garner enough units to perform the testing required and to fulfill our Rewards commitments.Learn about accountability on Kickstarter
To utilize a computer cluster, you have to use software that is built for a multiprocessing environment. Therefore, in most cases, computer clusters only help people who develop their own custom software.
The industry is changing, however. With the advent of multi-core CPUs, chip manufacturers are building computer "clusters" into the microprocessor itself. The problem is that, while certain operating system functions can intelligently take advantage of more than one processor core, at the program level, a lot of software still operates in a single-threaded mode. Software has to be written specifically to take advantage of a multi-core processor.
Software developers are retooling to take advantage of multiprocessor technology, but some lack the skills to write software that is optimized for a clustered environment or even architect a software solution that depends on multiple processors to handle specific tasks.
The short answer to the question is when you are on the web, there is very little being done for you that is not being done by computer clusters. But when you are working with applications that are native for your computer's operating system, quite often, you are not taking full advantage of the processing horsepower at your disposal.
Start by learning about the two main purposes of clusters:
When most people say the word "Cloud" today, what they are really talking about is a vast expanse of general purpose computer clusters hosted by companies that are partitioning nodes of their clusters out to customers in the form of Infrastructure as a Service (IaaS) offerings. These partitions of cluster nodes are used to host virtual machines that provide two main functions. Storage and processing.
While you can use a home-built cluster to provide network storage for your home with open source software like ownCloud (http://owncloud.org/) it kinda defeats the purpose for why "the Cloud" was invented. That is to securely host your applications and data off-site. It is not the intent of this Kickstarter to provide training on how to do that. (Use your favorite search engine to get tutorials with "raspberry pi owncloud")
Hosting applications, however carries a little more financial risk. Cloud providers charge in the Software as a Service (SaaS) space by CPU usage. And the speed at which your application runs, especially in a multiprocessing environment determines how expensive your online solution will be.
This is where you need to start learning MPI or the Message Passing Interface. The libraries of executable code that support MPI (there are two popular flavors: MPICH2 and Open MPI), help assure that you can build highly efficient software like Google's search. Unfortunately they don't help assure that you don't write highly inefficient code. Which is why it is important, if you are going to develop cluster-enabled software that you build a sandbox, or test cluster that does not cost you dearly if you make mistakes.
No, we are looking into several case materials. Steel, aluminum, plastic and acrylic are all being considered, as well as whether or not the material will be shotblasted, painted, assembled from parts or die-cast. So far, bent and stamped sheet steel, is looking like the winner, but we are also looking into acrylic jigs to allow use of Raspberry Pi, BeagleBone Black, Banana Pi or Hummingboard SBCs. Really, any SBC the size of a Raspberry Pi or smaller should fit 3 per case.
We also have a preview of the front bezel. It will be made as a grating, so some of the internal lights within the unit will be visible when it is powered on.
The Raspberry Pi is probably the worst option for creating an actual supercomputer used in a production application. It is not built for speed and unless someone provides an OS upgrade that can leverage the GPU, it is the definite turtle in the race. BeagleBone Black is only slightly better. Both of these platforms are hamstrung with a less than 100Mbps Ethernet. The Banana Pi and Hummingboard are both claiming that they will be much faster and be equipped for 1Gbps. Availability is the problem with the two late entrants, but their spec sheet certainly demonstrates an attention to the requirements of parallel processing.
I like to measure supercomputer effectiveness as MFLOPS per $ per Watt. Raspberry Pi may have the $ per Watt nailed but it misses the performance by a significant margin. The new entrants to the ultra-small single board computer market are very interesting, but even they will get smoked by a couple of CUDA boards.
I like the form factor, availability, price tag and current draw of the Raspberry Pi for learning how to build a supercomputing cluster. Once you build one with the RPi and develop an app that works, then the risk of moving your application up to some AWS EC2s is minimized. If the complete system (case, 3 SBCs, switch, cables) costs less than $200, you have a sandbox you can experiment with that costs no service level fees from AWS. Once you are fully deployed in the cloud, either keep the sandbox around for testing, or dismantle and part it out.
Amazon charges $.65 per hour for a 'real' supercomputer node. If you want to get OpenCL up and running on it and cluster it with another node be prepared to spend over $30.00 per day. Do you think they really care if you are just using it to "learn" about supercomputing? I looked for a "beginners discount" and their Free Tier uses the "micro" instance, which is not that much more powerful than a couple of Raspberry Pis.
So, let's consider the average price of a traditional single Raspberry Pi case to be $7 and the price for a +5V power adapter to be $5, even the price of a powered USB hub is not much less than $15 and easily breaks that price after you add three USB to micro USB cables. The cost of everything you need to protect and power three SBCs is over $30. Add the three Cat5e patch cables at $2 each and you are talking about nearly $40. If you have them shipped seperately from multiple vendors, S&H will push the total cost over $50. At that point, you have a wire octopus stretching across your desk.
I was planning to charge $60 for the production model, but don't really know at this point if I can sell at a profit, given the cost of the components and labor to manufacture. That's what the Kickstarter is for, to determine if there is a market and help me estimate whether I can sell 5, 50 or 500 units per year. If I can get volume discounts from suppliers I can make money on each case, otherwise, I will post the plans, bill of materials and software on the internet and let people build their own. I might sell some of the components to the kit.
So, what is your time worth and how much time do you think it will take to come up with a Lego or plexiglass housing for your SBC cluster?
There is no direct connection to the desktop. The desktop's power supply is used to bring +5V and +12V down to the cluster enclosure. The desktop connects and becomes a part of the cluster through the Ethernet cable attaching it to the network switch. There are several companies that sell 5 1/4" drive enclosures for external DVD-ROM drive like a Sabrent 5.25 Inch Aluminum CD/DVD Enclosure with Cooling Fan. http://www.amazon.com/gp/product/B000VXDFJE/ref=oh_details_o04_s00_i00…
I will have a picture in a future update, of someone putting the enclosure through its paces on a MacBook at a Starbucks.
The true target market for this project is the secondary school and higher education computer science instructor. They will be instrumental in coming up with a curriculum that helps blend experiments in parallel processing into their current and future coursework. I am counting on teachers of such classes to be able to change a drive out in a desktop. Remember, the hope is that students who are using these devices are learning everything you need to set up your own cluster. That includes acquiring and configuring the hardware as well.
In the end, if no instructor or student at a school is comfortable installing these into the desktops found in your typical computer lab, there is usually an IT guy or nerd-on-call that could do the work.
We are looking at a variety of designs for the front bezel. One of them includes three 26-pin female headers extending out through the front bezel and attaching to the RPis' GPIO ribbon cable. Although the case is a bit of a tight fit, there is enough room for cables other than network and power to accommodate most of what you may want to do with the components, and access can be granted through the back, front or perhaps even holes drilled into the sides. Remember, this is a kit, not a work of art. Feel free to mod. What will likely be most inconvenient is access to the composite video and audio jacks on the RPi due to their close proximity to the side of the case. We had to sacrifice something due to the clearance requirements of the RPi's peripheral ports around all four sides.
Companies make 15 connector SATA to 4 connector Molex adapters for a very reasonable price. All Kickstarter reward units will have them, gratis, but depending on how the units will be sold from production, they may have to be specified as an addition at time of order.
I wanted to run about 100 units as a first pilot run and for at least 20 of those units, I wanted to perform extended burn-in testing with three RPis and one network switch each. My cost to produce the pilot units I estimate at $75, so that's $6000 for 80 units and $250 * 20 units for the fully decked out cases with the cost of the additional components and labor. It comes out to $11,000. I rounded down, but am hoping my costs don't exceed the estimates by too much.
I am creating a software distro that makes it real easy to get up and running on Windows or Linux and possibly Mac OS. I have only committed to do the Pi and BBBlk distros and since I am still waiting on my BeagleBones, the BBBlk software may take longer.
The purpose of the software will be to help guide people up the learning curve. Creating coursework or classroom exercises in parallel processing is not easy. Our first order of business is to get a lean, MPI-enabled Linux distribution available. We then want to put open source performance monitoring software in the distribution so the cluster can be monitored out-of-the-box. If there is time before the Kickstarter rewards ship, we would also like to put example exercises and lessons on the distro for high school and college level learning challenges.
The software will be publicly available to anyone. It will be free of charge and does not require the enclosure to run. The website will be maintained and updated as completed projects by my team and others will be shared.
There is ownCloud, which is somewhat limited in the Software as a Service arena, but does file sharing very well. It is a fairly steep learning curve to get into the application execution area with a cluster.
As a project I intend to undertake, I will be developing a High-Availability Web Services cluster, which will also support traditional web server functionality. It will most likely be built off nginx. This is not necessarily pure parallel processing, however, so it doesn't require coding in 'C'. So if you are familiar with setting up a linux-based web server using nginx, you can have a fairly inexpensive cluster setup for experimentation and light duty.
There is an excellent list of parallel processing efforts here:
Many of these projects involve downloading software and many of these applications have ARM versions. While BOINC (the Berkeley Open Infrastructure for Network Computing) may work on ARM processors, it is highly operating system dependent, so you may find it difficult to get your partcular project engaged on your devices. It may require a specific OS different from the one you intend to use.
I believe that getting three BOINC nodes up and running in this enclosure is a worthy and honorable project that may be near impossible to do. (Hint, hint. Thinly disguised hacker challenge.)
- (35 days)