- Final Thoughts
2008-12-15Help Calculate 0xPi
Javascript Based distributive computing can be a very powerful tool for computing distributed problems. If something like this was implemented on Google’s home page. Google gets over 110 Million hits a day. So in the first day we would have calculated the first 300,000 digits of 0xPi. Supercomputers could do this in a minute, but some people do not have super computers.
A few ideas:
- Problems with exact answers or that build off previous answers are not the best kind of problem to implement, because the answers received through JBDC have a higher probability of being inaccurate.
- Through JBDC you get cheap labor out of visiting computers, so data analysis might be the best application of this.
- Would be good to implement this on a site that made you keep going to different pages or that made you reload a lot. Possibly a news site of some sort, or maybe implemented in a Facebook application.
If anyone has any questions or suggestions for this, please let me know. This website is officially frozen now. I added some additional progress reports that I had not kept adding, hence the 12/15/08 date on them. - Progress Report #8
2008-12-15I had a wicked off by one error that took me a while to isolate and fix. But after that, the summations for partial computations were working on any arbitrary piece of the problem. I added a little change to the GUI on the computation page. Besides that, I tweaked a lot of other things throughout the application to get it running more smoothly and securely.
- Progress Report #7
2008-12-15Right now I have a good amount of accuracy. Using the new testing functionality I made, I found a lot of inaccuracies in the computations. Some were caused by javascript not recognizing leading 0’s. Another one happened when someone would close out before the computation starts. My test function works up until the 100,000th digit of Pi. But in order to calculate that high, I definitely need to implement some browser specific loading. And in order to do that, I am going to need to be able to cut the smallest problem size I have now (one digit of pi) down into smaller parts so that they can be calculated separately.
- Progress Report #6
2008-12-15I got some of the things that I needed to get done this week. Including the test, at http://seniorproject.korykirk.com/testpi.php it will probably show you errors if you go to it right now. I updated some UI elements, and have a prototype of a new view that I am working on (not implemented yet). I need a prettier way to show the info. http://www.everything2.net/index.pl?node_id=1302963 also check out that site, I found it pretty funny and relevant to my project.
- Progress Report #5
2008-12-15• Set up a database schema and implemented it.
• Worked on security.
• Figured out some optimization
The relationship between the summations of a single calculations of the bbp formula for pi is a factor of 16. Just multiplying by a factor of 16 for each addition space wanted loses accuracy. Therefore there I just need to figure out the summation needed to maintain digit precision – this is not as big of a concern for me right now. The DB schema I set up makes sure that if two people requesting the site at almost the exactly same time will be given different pieces of the problem. It also makes sure that if someone gets a piece of the problem, but never reports that info back to the server – that absence of a value will recognized and the value will be recalculated. Also fixed a vulnerability where people could easily send post requests to my server and give false data. Now I want to make the website look nice and shiny. I want to make sure I fix any other Security flaws / bugs. I also want to get the browser load implementation to work. I don’t think I will implement the browser-specific pieces of problems until I get some more data for the calculation speeds of different browsers. Right now I do not have enough info to make a general browser adaption algorithm, but I will be able to give bigger loads to Firefox 3 and Chrome. Also want to write a script that lets me know if the calculation is ever off to ensure accuracy and to help detect bugs. - Progress Report #4
2008-09-28This week, I made significant progress on my prototype. I implemented modular exponentiation to cut down on the size of the numbers I am using for calculation. I also implemented a method in which the calculations do not use floating point data types, due to their inaccuracy in certain calculations. Currently my prototype is not outputting the correct values, but I am still working on that. It was outputting the correct values before I implemented these two things, so I am attempting to fix the code and find the source of the problem.
- Progress Report #3
2008-09-21This week I mostly worked on the prototype for the framework of my project. The code in the Fibonacci does just what it would do with any other problem except it just sums the next digit in the Fibonacci series. It integer overflows at around the 95th digit. I also am working on implementing the BBP formula in Java. Then I will implement the same code in javascript. I just want to get all the math worked out in a language I am more comfortable in, and that is easy to test with.
- Progress Report #2
2008-09-14This past week I have spent a lot of time researching on how I want to implement my first Cooperative Distribution problem as calculating the digits of Pi. There is a formula called BBP Formula for Pi (link) that will find the Nth hexadecimal digit of pi. This is good because it can accurately calculate a few digits of pi. This is also good because the calculations involved are not that computationally intensive. It is, although, difficult to implement this algorithm, and I am still working out the tweaks. The link given above is very informative, so is the Wikepedia entry. I also have created a schedule for my project, which can be found here.
- Progress Report #1
2008-09-07In this past week I have been trying to find a problem that I want to start with for this form of problem solving. I had a meeting with Dr. Way, and he told me that this sort of project is an example of Cooperative Distributed Problem Solving. Hence the new name of my website and project. I am going to create a schedule for developing my Senior Project over the coming weeks. I have everything I need for starting on the problem, so I am going to begin working on a prototype this coming week. In this prototype I will create a basic framework for JBCDPS (and hopefully find a shorter acronym). Some things I need to do in the weeks after this one. Implement Distributed Problem Solving on an initial problem and get some results. Make sure that the code is secure and that no rogue posts or bad data can be entered.
- Project Idea
2008-09-02A website that when you go to it will calculate a piece of a problem in javascript that is loaded onto your browser. After your browser calculates the javascript, the result will be sent back to the web server. This is to mimic parallel computing, but doing it on the web, in web languages – javascript & php.
Possible Problems:
Mersenne Primes?
Protein Folding
Pi
Traveling Salesman - Top Links
2008-08-29Notice the top links, there is a link to my Senior Project class website, and a link to my own personal website.
- Welcome to my Senior Project Blog
2008-08-29This is my Senior Project page. I will be providing a description for my senior project on this site soon. I have created this blog in php over the past two days, and I am going to keep up on it.