 Welcome to another edition of RCE. I'm your host Brock Palin and I have with me my good old co-host Jeff squires from Cisco systems in the Open MPI project Jeff Good afternoon Brock looks like we got an interesting one today. Yes, this is again It's gonna be something a little different than from traditional HPC, but we're gonna find out for sure We have David Anderson who is from the Boink project People probably mostly know Boink through SETI, but I want to verify that with David So let's go ahead and get David on and have him introduce himself David. Welcome to the show Thanks, Brock Okay, so David, where are you located and what's your affiliation? I Work at a place called the space sciences laboratory at UC Berkeley. I'm a research scientist here Back in the 80s. I was a professor at UC Berkeley. I'm a originally a computer scientist So I taught for a while worked at some startup companies and then came back to the university in 1998 to Start the SETI at home project and later the Boink project So SETI Boink kind of has its history beginning with the SETI project Yeah, it grew out of that Okay, so was so SETI probably should give a quick rundown a lot of people are familiar with SETI But not but that's the search for extraterrestrial intelligence Yeah, so SETI in general is It's trying to find life outside earth the particular project that we're talking about here is called SETI at home and It's an example of what we call a volunteer computing project where people who own PCs can Contribute Processing time or disk space or network bandwidth on their PCs to to help out a computational science project SETI at home was was an early example of this but by no means the first one. Is it still the most popular one that you know of? In terms of number of people participating, it's the most popular In terms of computing power actually folding at home from Stanford, which is another early project is the biggest in terms of flops and The two very earliest projects just to just to give credit where it's due are distributed net and GIMP sort of the great internet Mersenne Prime search those both started around 1997 and Folding at home and SETI at home started in 1999 Okay, and all those projects basically had their own Software stack for managing this volunteer computing and Boink is kind of a framework for implementing that Yeah, so all yeah all those projects develop their their software from the ground up Including you know their own application which in the case of SETI at home Does fast for a transforms on on radio telescope data and looks for narrow band signals in addition there's the This middleware layer that has to do with distributing jobs collecting the results Verifying that they're that they're right You know acting like a screensaver and the client machine and things like that so So after a couple of years of running SETI at home I decided that it would be a good idea to Develop a general purpose middleware layer so that other scientists could use the same approach to computing Okay, so Literally, I could go download Boink and turn it on my computer and you said it operates as a screensaver So like when I'm not using my machine. It's kind of cycle harvesting Yeah Maybe I should just talk for a little bit about the the software the pieces of software that make up Boink It's a It's a it's a middleware system that that that has kind of two big parts to it the server side Which is what scientists used to? To deploy their projects and to To manage the distribution of work and then there's the client part of the software, which is what volunteers run in their computers The The the the the client part is Is responsible for Uploading and downloading files and running jobs in your computer you you can set it up to to act like a screensaver And to to start computing only when you're not typing at your computer if you want to you can have it show graphics that That show you what's what's going on in terms of the computations These days actually it's more common to configure it to to run while you're at your computer It runs applications at zero priority and takes takes other measures to To ensure that the programs don't impact the performance of your computer for the work that you're doing on it and And then to let your computer turn itself off or go into low power mode when you're not using it So that's The the client is very config configurable. You can set it up to run all the time or only when you're at your computer Or not at your computer And the client of course is available for for all popular platforms windows mac os x and Linux The other big part of boy Actually probably the the larger part is the is the server side Which is what a scientist use would use to create one of these volunteer computing projects and The server part consists of both the the machinery for handling jobs and Dealing with errors and timeouts and all the nuts and bolts things As well as a bunch of PHP scripts that that provide portions of a website it turns out that that for attracting volunteers and keeping their interest it's real important to Have a website that not only explains what you're doing in terms of of science and research but that also has some community features so that the volunteers can chat with each other and do things like Make friends lists and send private messages back and forth. So so Boink also has a component of An aspect of kind of social networking website So if I can First something that there it sounds like for well actually, let's take a step back. What what does Boink stand for? We know it stands for Yeah, Boink stands for Berkeley Open Infrastructure for Network Computing Ah and and so you you talked about the history there and how you got started and whatnot And that there's two distinct pieces the server side and the client side Let me infer something you just said about the the server side. So when I went out and looked To your site that you know, there's a variety of different projects that you you know, if I download the client I can have the client run You know any one of these you know scientific projects that are going on right now or From from what you just said can I infer that every one of those has their own server setup? Or is there you know one master server setup and it's doling out the work for all the Project Yeah, each of those projects is completely independent of the others They have their own server complex their own database that underlies the whole thing There's nothing centralized about Boink except a website where you can download the software That's one of the one of the key design ideas of Boink is that the volunteer can go out and survey all these projects and Look at the science that they're doing look at their Publication history if they want and decide which which one is likely to Produce results that that the volunteer views as important and You you can set up the client so that it participates in more than one project You could you can run all of them if you want the client will kind of cycle around and Get jobs first in one project then another You can you can also tell it what fraction of your resources should go to each project So really what the at the largest scale the goal of Boink is to is to create a very dynamic system where There's new projects arising all the time and Volunteers hopefully are keeping track of these new projects looking at the work they're doing and Reviewing their decisions about how to how to allocate the resources so that the the goal is that Is to create a system where the computing power gets channeled to the projects that are doing the best work the most important work In the eyes of the general public so quick question then the client the client doesn't actually have any like a Scientific capability in itself the server Distributes the application down to the client also like say I've got a Boink project set up But I need to use Gromax to run my MD calculation when I download Boink from the Boink website It doesn't have that capability. It has to be pushed to it by the server Is that how that works? Yeah, the boy client by itself Is is just a framework for downloading and running programs It doesn't actually have in it any of the any of the scientific programs When you when you first run the blank client it asks you to Attach the client to one or more projects so you can pick You know Einstein at home or said he at home or any of the many other projects The client then does RPCs Remote procedure calls to the servers for those projects The RPC Describes the client it tells it what kind of processor it has the the Benchmark values the memory size the amount of free disk space The operating system version The and then the project server looks through its database of jobs and Picks some set of jobs that the client is able to run You know that some jobs may need more or less memory or disk space the server makes an informed decision about What the best jobs are to send to the client and the the the description of the jobs includes the the list of files that make up the application The application could could have many files, you know main program libraries databases, whatever The jobs can have many input files all those file transfers go on Asynchronously while other jobs are calculating When it gets all when the job is staged and ready to start It may have to wait for a while Eventually the job runs when it's finished another another of these RPCs happens that that Reports the results back to the server and gets new jobs to run So so it's very easy for projects to deploy new versions of their applications that was that was one of the Original motivations in the original SETI at home. It was very cumbersome for us to deploy a new version We actually had to have everybody Manually download and install a new program With boink that all happens automatically Okay, so boink is really almost a type of resource manager focusing on this loosely connected set of volunteer systems That are coming and going and that's actually an interesting part. How does boink handle clients kind of? Shutting off turning on joining up half done work not finishing a work unit like how's how's it handle all that? well There's a lot of respects in which Managing this this pool of roughly one million PCs of all different shapes and sizes Differs from managing the nodes in the cluster or a grid or a more organizational kind of resource The These these different attributes of the of the Big set of a million computers are what make boink different from Software like condor or platform or things like that The some of the ways in which is in which things differ Probably the biggest difference is that the resources are not under the control of the of the project They're they're owned by other people who are effectively anonymous So when the project sends out a job to somebody's computer and it gets back an answer It it can't be certain that that the answer is correct there are Home PCs Commit errors at a certain rate their people overclock their PCs and they systematically give floating-point errors there's also a small but but non-zero number of of malicious people who intentionally Fiddle with the client software so that it sends back either erroneous answers or Answers that claim to have used much more computer time than they actually did so so so one of the main functions of boink is to is to detect these these errors and these misbehaviors and Compensate for them in some way so that the overall computing resource becomes something reliable It it also has to detail about I'm sorry, can you talk a little bit in detail about how you do that because I would Imagine where the the secret sauce is you know like how did you know that you got a good answer back? The The bottom line mechanism is is replication to run each job on At least two different computers computers belonging to two different people to reduce the possibility of collusion and To compare the answers and to compare the amount of CPU time that the answers claim to have taken And to accept the result only if those answers agree within some tolerance There's a lot of a lot of subtlety and fine points to this For example, if you have a program that does floating point calculations You're typically typically going to get slightly different answers Depending on what kind of processor you run it on or even what libraries the computer happens to have so For some applications like steady at home these these small differences in floating point math Lead to small differences in the answer And you can compare answers with with kind of a fudge factor if they agree within a couple of percent then you count them the similar But there's other kinds of applications like light grow max that are unstable and a small numerical deviation early on leads to unbounded differences in the output and There it's it's kind of tricky to do replication One of the features that Boink has is what we call homogeneous replication which means that the the the set of of of platforms of the combination of operating system and processor type is divided up into Equivalence classes that are that are numerically equivalent in other words They they always give bitwise identical answers even for floating point calculations And then what what Boink does Once it's once it's assigned an instance of a particular job to a given machine It will only assign replicas of that job to numerically equivalent machines so if it went out to a 32-bit Windows machine The the replicas will only go to other other Windows 32 bit machines And you know it may you may have to subdivide by AMD versus Intel So anyway, that's that's the basic idea is is that to get To get real validation you need to do replication if and of course, it's all probabilistic There's always the chance that you might send two replicas to two hosts that that both return the wrong answer If if you need a high level of confidence Boink lets you ratchet up the level of replication So that you send out three copies and demand that they all agree for example now of course this imposes an overhead on the on the computation that you do if you do every job twice you're cutting your overall throughput in half so Recently we added a variation of this that we call adaptive replication where each host has a We kind of keep track of his reputation how many jobs what what fraction of jobs it's done correctly and If that goes above a certain threshold we trust that host and we start sending at jobs that we don't replicate Continuing to randomly mix in a few jobs that we do replicate Just to keep the bad guys from trying to game the system But with this adaptive replication mechanism we can we can bring down the overhead of Replication to something slightly over one instead of something slightly over two So is your is your protocol open source? I mean is it an open protocol because Boink itself is open source So is it conceivable that people can write their own? To this the reason I'm asking is because I remember a couple years ago that some guys at Earlham wrote a Client for folding on clusters as opposed to folding at home and and they had it fronting, you know Well cluster that was you know running a big MPI job on the back end to Distribute the work to you know all their beefy server nodes kinds of things Is that stuff kind of happen or does does Boink facilitate that or for how does that go? well Boink is entirely open source. We distributed under the LG PL license The RPC protocol therefore is well known and it's it's it's documented on our website So yes in principle anybody could go Implement a brand new boy client from the ground up if they wanted to I Think there's only been one instance of that Some guys from Technion in Israel Implemented a version of the Boink client in Java running on Android the idea is to do computing on on cell phones Interesting. I would imagine that would be a huge battery drain on on cell phones But it's still fun that they did that. Yeah, the idea is to compute while the cell phone is plugged in docked Ah, okay has it Anybody yeah, like more than just that Earl him experience of of doing something parallel on the back end I mean I would kind of assume that the the computational jobs that are submitted to Boink are more in the embarrassingly parallel Kinds of categories such that you wouldn't really benefit from having a cluster behind you It'd be more like it would be exactly the same as having each of those cluster nodes Have their own Boink clinic rather than you know, just an MPI job that ties them all together. Is that an accurate assumption? um Most of the Boink projects are throughput oriented They're trying to get as many jobs done per day as possible, but they don't really care how long a particular job takes So for them Parallelizing jobs has has no value However, there are a few blank projects that are that are latency-oriented in other words They have batches of jobs and what they're interested in is getting each batch done as quickly as possible And those projects Are moving in a couple of directions one is that that Boink supports multi-threaded applications so that You can you can have jobs that use all of the cores on an eight or sixteen core machine Working on a single job trying to get it done fast rather than doing eight or sixteen separate jobs in parallel And also a lot of projects are now looking at using GPUs to To speed things up and to increase throughput as well So before we get too far on what are the scale of some of these Boink projects both in a number of participating members and The amount of flops I assume the flops are going to be kind of prorated Because of that the replication you were doing to verify that the results are good Yeah, so currently as of today there are 330,000 people actively running Boink Active means that their computer has returned a job in the last month a lot of these people have more than one computer So there's about 580,000 active computers If we If we include folding at home in those in those totals folding at home is is a big volunteer computing project Which doesn't use Boink. Maybe they will someday That brings the totals up to about a half million people and about a million computers All together those computers are providing about six petaflops of computing power if we prorate that because of replication, you know, it's somewhat less maybe between four and five and As of today, there's about 60 volunteer computing projects all of them use Boink except for Folding at home and and actually the two original projects just distributed on net and gimp's are still going using their own platform So that's that's impressive whether it's four or six petaflops That's incredibly impressive and I remember when when Roadrunner crossed the petaflop barrier There was a lot of discussion at the time saying well, you know, there's actually all these distributed You know projects out there that have been over a petaflop for a long time, but they're not recognized Just for the fun of it. Has anybody ever considered writing a linpack client for Boink? Just to just to see You know to get officially Yeah, I think that running running linpack and parallel would require the type of low latency IPC that The clusters are good at So I don't think you're gonna get Volunteer computing systems to to do well on the kind of benchmarks that are used in the top 500 super computer list But but who really cares? I mean the goal here is to get science done not to not to be number one on a list Believe it or not. That was actually the exact answer. I was going after because Simply at ISC, you know a month ago Oak Ridge Decided not to rerun linpack and actually get a bigger number than Roadrunner like yeah We were too busy actually doing work to run another benchmark and I think that was just a fantastic answer And I'm thrilled that you gave pretty much the same answer. That's not just for the technology reason But also for the we're doing work read He's in That that's So how how hard is it to to pull Port and applets have some number crunching thing and and I'm a scientist and I suddenly realized You know what? I've got a mountain of data and I just cannot you know I don't have the resources to do it. How hard is it to port to the the boink system? Actually before I answer that one let me go back to an earlier question that you answered about How we handle computers going on and off and joining and leaving things. I Didn't really finish answering that Yeah, so One of the things that Makes this type of computing a little different from using dedicated nodes like clusters is that We don't get the we don't get full-time use of the computers Boink may be configured so it has to stop computing when the guy comes back and moves the mouse Of course people turn their computers on and off all the time So Boink has a bunch of mechanisms that deal with these issues one is that that applications typically Have to be written to checkpoint periodically and this is this is One of the pieces of work that you have to do or that you should do to get an application to work on boink is Figure out the points in the application where you can efficiently checkpoint Boink doesn't doesn't copy your whole address space or any of these brute force Things that that other systems do it requires the application to to write a file that summarizes it stays and lets it restart And typically that that gets done every few minutes So if you turn off your computer and it starts back up again, it only loses a little bit of computer time on the on the server side on the the job scheduler is It did when it sends out a job. It doesn't necessarily expect to ever get an answer back. So it it times out jobs Sends out new instances. It has a little bit of intelligence about Sending sending these retries to computers that are likely to get them done faster so that You know so that we don't have to wait to validate the job for very long Another very important aspect of this kind of computing is that most of the nodes are behind firewalls or NATS So you can't you can't push jobs to them. You all the communication has to be initiated by the clients And in fact Boink uses only HTTP To do this communication so that the client and initiates HTTP requests Both in talking to the server to get jobs to do and also to handle the file uploads and downloads since pretty much every everybody's firewall is set up to let outgoing HTTP connections go through so So yeah, there's there's a lot of a Lot of differences between Dedicated and non-dedicated resources and and that's the the main job of Boink is to is to deal with those idiosyncrasies question of you know how Let's say I have some number crunching program and I want to run it under Boink Do you do you provide API's for me to call or? You know what kind of is the typical process of you know taking some app and and making it go underneath the the Boink platform okay, um Well, the easiest case is if you if your application is written in the modern language like C++ or or even C or even Fortran and in that case all you have to do is recompile it with calling a Boink initialization function you have to you have to replace your f open calls with with a Boink variant of that You need to Identify the points where your application can possibly checkpoint and put in a call to ask Boink whether it should in fact checkpoint So that whole process is usually pretty easy you just recompile things um Boink is also set up to work with Legacy applications for which you don't have the source code. There's a there's a wrapper that that kind of provides the Boink behavior And it runs your legacy application under that So so that's kind of the the first part is making minor changes to the source code of your program The second part is you have to recompile it for At least for Windows and a lot of scientists Develop in Linux and it can be The fair amount of work to get your program to run under Windows, you know, you can use either the the Microsoft tools or Seguin MinGW things like that And if you want to not anger Macintosh owners, you also have to get it to work On the Macintosh so that that's that's kind of the second part is getting your application to run on multiple platforms One interesting area of research right now is the use of virtual machine technology to to simplify that and to To set things up so that you only have to Get your application to run on one platform, you know, maybe Linux and then Have Boink run it in a in a VMware hypervisor on these on these other platforms Now the third thing you have to do is to is to write some back-end software that Generates jobs for your application and that that validates the results of jobs and the processes the results of Validated jobs Boink is really designed to handle a big stream of hundreds of thousands or millions of jobs. It's it's It's possible to submit one job at a time, but that's that's not really what Boink is optimized for so this this this back-end this functionality of Pumping work into the system and handling the completed results All that's done and typically in software you write programs that that Generate streams of jobs and of course Boink supplies APIs for doing that So those are the three parts we've we've you know, we've tried to Simplify it document it pretty well It's you know, I would say that You can usually get things working in a in a couple of person days if you have the if you have the right people Now when you say it has to work on Windows That's just because most the public out there are running Windows on their system and you won't get very many volunteers unless you have a Windows An application they can run to the Windows client Yeah, the typical breakdown these days is 85% Windows and 7% each for Linux and Mac OS X Now do you know of any universities or any type of organizations that are kind of using Boink as a cycle scavenger? Like where you'd normally would see something like condor But instead are using Boink to kind of take up idle lab machines Maybe you know dedicate two cores out of a four-core system at a you know administrators desk just running word Have you seen anything like that any examples? Yeah, there's there's a probably a half dozen universities and a Bunch of companies, I don't maybe 10 or 12 who are using Boink for for desktop grid computing meaning using their own internal resources to do distributed computing and Boink works fine for that and it has the Advantage that that if you outgrow The if you outgrow your own resources and you still need more than you can ask the public for them What are what would you say the main advantage in that situation Boink has over something like condor? Is it that ability to pull into public easily? Yeah, I think that if if you only want to do sort of private desktop grid computing or cluster computing condors certainly a more mature system. It has better Workflow related tools Boink basically doesn't have any workflow related tools You have to write your own programs that that that matters that level of things so the I think the the the key component is is going out and getting resources from the public and That's a that's a very very big advantage you know typically at a given University you might have access to Hundreds or maybe a few thousands of nodes But if you go out and ask the public even even a limited set of the public like the The alumni of a big University like Berkeley number in the hundreds of thousands and It should be possible to get hundreds of thousands of nodes just by asking the alumni In general the the number of PCs that are privately owned is Is an ever-increasing fraction of the total there's there's currently About a billion PCs connected to the internet So even though we right now we have about a million of those doing scientific computing with Boink, but that's a 10th of 1% of the total and We're hoping to expand our market in the next few years Okay, so on a kind of different topic since Boink was kind of grown out of a Previous project to solve a lot of the problems that Managing that project had like you mentioned updating software for SETI pushing that down Now that you've ran Boink and with Boink's architecture for a while if you would do it again. What would you change? well Probably nothing in the basic architecture of Boink the I think the thing that I would change is to centralize Some of the community-oriented aspects of Boink right now every project has its own User database its own message boards its own instance of all these social networking features I think that whole thing would work better if there was only one Kind of centralized website for the for the community aspects of volunteer computing And that that that may exist at some point. We're moving in that direction Okay, actually that's an interesting bit. I noticed that so the work units and you mentioned how Machine can build up reputation. You actually publish that or users can choose to publish that someone's like a little competition and you can Set up teams and you know the you could have you know the alumni of Berkeley have a team And they get a total and they can compete against you know, Michigan and who racks up the most Yeah, that's that's an aspect of volunteer computing that I haven't mentioned yet is is the competitive aspect When you compute you get this this number called credit, which is how much work your computers have done it's basically a flops count and That's very important to some people a lot of people want to prove to the world that they have the fastest computer on the block and One of the one of the challenges in the early days of Boeing was to get steady at home users to consider running other projects in addition to or instead of steady at home and And One of the reasons for not doing that is because they'd already accumulated so much credit with steady at home They didn't want to start over start over at zero with some new project so to deal with that we we created a system where all of the blank projects export their credit statistics in in XML form and Users have have these sort of unique IDs that that span the different projects So it's possible for third-party websites to go out and download all this credit information to to to collate everything using these cross-project IDs and to to have leaderboards that show people's total credit over all projects and that that provides a Bit more of incentive for for people to run multiple projects So so that aspects of that aspect of things has we we have a centralized architecture for For collecting credit information So it's kind of like really simple credit syndication so to speak right So let me going back a little further in the in a conversation here you mentioned distributed at Them and why not these guys are not using Boink Is there a reason that they're not using Boink or are they competitors or are they just that way for historical reasons or you know What's your relationship with the with those people? well the The projects that predate Boink including folding at home Develop their own infrastructures that work very well for what they do and they're very familiar with those tools I Don't think any of them has any objection and principle to using Boink, but there's no real reason for them to either Okay, fair enough then let me let me ask a slightly different question then about the the community So Boink is open source and you said you do it under LG PL Who who are the developers and and actually what what is your exact role in the project? Are you a developer? Are you a manager? How does the typical project flow in itself? well, let me let me back up historically I started working on Boink in 2002 and I'm a I'm a programmer. I'd rather be programming than managing at any particular point Later in 2002 I wrote a grant proposal of the National Science Foundation and That got funded so I got some money to develop Boink and was able to hire a couple of other programmers and NSF has has funded Boink ever since then At a fairly low level so the project consists of me and one other one other full-time programmer and one half-time programmer And probably 90% of the programming is done by us We do get some participation from volunteer open-source programmers we've also set up a bunch of Systems where we can use volunteer labor and in various other ways for example. We have a a Testing process when one of the challenges with Boink is that it has to run on You know 10 or 20 different operating systems things are a little bit different between Windows NT and XP and Vista and Windows 7 We don't have the resources to to buy all these computers ourselves and do all that testing ourselves So we have a volunteer Project where people who have all these different kinds of computers Test our latest development versions of Boink we also have groups of volunteers that That translate the user interface text into a bunch of foreign languages I think we have about 20 languages right now We have a we've set up systems to do customer support of course when you have a Population of a million people using a software product. You're gonna get problems and questions and customer support calls We we don't have the manpower to to handle those ourselves of course, but we've set up a system where volunteers can can work as a Support reps basically using skype's you can you can go to a website and see a list of people who speak your language And see which ones are available to talk to on Skype right now So yeah, we've had to really figure out how to leverage the the energy and interests of the general public Not just to do the computing but to to do a bunch of other ancillary tasks So as a as a developer in an open-source project myself, I'm always fascinated to know, you know What what source code control system do you use? For maintaining all your code and why did you choose it? We use subversion It was the the best option at the time now there may be better things out right now pretty much the bulk of the source code is C++ in the Client GUI we use a toolkit called WX widgets, which is open source and cross-platform and We use a lot of Python for the Back-end scripts that you use to control the project and to create new projects That's all in Python and then of course there's all the webcodes in PHP Overall, it's it's it's pretty modest size system total of maybe 200,000 lines of code Since we're so small we we sort of have to keep it that way Okay, so on a different note, so you mentioned that Seti is the largest consumer of a Boink What's some of the other large users of Boink you mentioned Einstein at home? Also, what is the strangest or most interesting use of Boink like something Given that as a pretty generic resource, I'm sure it's about anything But we've mostly stuck to scientific kind of applications has there been something that you wouldn't say falls into that category that's used Boink Yeah, there've been of course anybody can create a blank project you don't have to be a Academic researcher to do that. There was one group that used Boink to To explore to investigate a variant of chess called Chess 360 where you where you randomize the position of the of the players at the start of every games You know, you don't have the just the usual set of book openings from regular chess And they use Boink to you know to to run millions and millions of simulated games to investigate how that worked there was another project that Used Boink to do Distributed ray tracing to make animations There's there's really projects all over the map You can use Boink To do things that are not necessarily necessarily computationally intensive you can use as a as a framework for running any kind of application and There's a project called quake catcher network from Stanford that Uses Boink to implement a distributed seismograph It turns out that laptop computers have a little accelerometer built into them And when the laptop is sitting on a hard surface you can actually pick up seismic waves with it and This project runs an application that that monitors those waves looks for spikes and reports them back to a server So that they can detect earthquakes faster than you can with traditional centrally centrally located seismographs There's a couple of my favorite projects Climate prediction net from Oxford uses Boink to run simulations of The Earth's climate is these huge complex models that actually run for several months per job. That was a big design challenge for Boink was was handling jobs were that long they Imposed a bunch of new problems Climate prediction net has Vastly improved the accuracy of long-term predictions of the Earth's climate and it turns out that the that the range of Possible temperature increases is much wider than anybody thought it was before Another favorite project is called LHC at home. It's from CERN the people doing the large Hadron collider and they used Boink to Run a simulation program that that was used to optimize the design of the of the of the magnets in the in the accelerator and to Kind of tighten up the beams of protons and anti protons and get higher energy collisions out of them Recently there's a project From a company called D-Wave Systems a company in Canada that's trying to build the first commercial quantum computer And they're using conventional computing to to model the quantum computers predict how they're going to act and And optimize their design So there's a project called Aqua that you can use to if you want to Accelerate the progress of quantum computing cool That seismograph was really creative use of the distributed system plus the distributed Resources not only did you have distributed CPUs and memory you had distributed Instruments in the in like the drop sensor in the laptop. That's actually quick I'd be curious if anyone else ever comes up with a similar kind of idea of using something everybody has and Attaching something like Boink to it just to communicate So what's the website in contact information for Boink where people can download it and maybe run out on their own home machine? the website is boink.berkeley.edu Bo inc and You can download the client software from there And if you're a scientist or somebody who does high-performance computing you can also download the server software from there There's a couple of different ways to set up the server software you can either Install it on a Linux box Or we also provide a virtual machine image That has the server software Already set up and you can run that on the VMware player on your platform of choice We also provide a an Amazon elastic computing cloud image so that you can run a Boink server In the EC2 cloud and not have to worry about hardware. Oh, that's creative. That's a good idea. That's right. Yeah Okay, cool. Well, thanks Thanks so much for doing this David This is really interesting and this show will be available on www.rce-cast.com And you can find all of our other shows on there and subscribe to iTunes and we will have this up soon Thanks for your time David. No problem. Thanks a lot. Okay. Bye. Bye