A Java Toolkit for Distributed Evaluation of Hypergeometric Series
Hypergoemetric Series are very important in mathematics and come up regularly when dealing with the precise definitions of constants such as <i>e</i>, π and Apery's constant ς(3). The evaluation of such series to high precision is traditionally done with multiple divisions, multiplications and factorials, which all takes a long time to compute, especially when the computation is done on a single machine. The interest lies in performing this computation in parallel and in a distributed fashion. In this thesis, we present a simple distributed toolkit for doing such computations by splitting the problem into smaller sub-problems, solving these sub-problems in parallel on distributed machines and then combining the result at the end. Our toolkit takes care of all the networking for the user; connectivity, dropped connections, management of the Clients and the Server. All the user has to provide is the definition of the problem; how to split the problem into sub-problems, how to solve the sub-problems and finally how to combine the sub-problems and produce a result. The toolkit records timings for computation as well as for communication. What is different about our application is that all the code is written in Java (which is completely machine independent) and all the Clients are Java Applets. This means that having a web browser in enough to take part in the computation when it is distributed over the internet. We are almost guaranteed that every computer on the internet has a web browser. The Java Plug-in (if unavailable) can easily be downloaded from Sun's web site. We present a comparison between Java's native BigInteger library and an FFT based Integer Library written by R. Howell of University of Kansas. This study is important since we are doing computations with very large integers. To test our system, we evaluate <i>e</i> to different number of digits of precision and show that our system truly works and is easy for anyone to use.