![]() |
||||||||||||||||||||||||
ASCI a14 Ibis/GAT Assignment: Capture GoFor the Ibis/GAT assignment of the ASCI a14 course students are required to write a parallel application using the Satin programming model (which in turn uses the Ibis communication library) and deploy it using the JavaGAT. For more information on Ibis/JavaGAT, also see the A14 course site If, after reading this website, you have any questions, feel free to email me at niels AT cs DOT vu DOT nl Capture GoCapture go is a simplified variant of the Go board game where whoever captures something first, wins :) Some links: The goal of the assignment is to write an application which is able to determine the best possible move for the current player, given some initial board. Download a sequential Java go solving application here.The application includes a build.xml file for building the application with ant, as well as a doc, bin and external directory to hold any documentation, scripts and external dependancies for your application. Although the application randomly creates boards it is deterministic, with a given setting and seed it will always generate and solve the same board, allowing for easy benchmarking of the application. The different command line parameters drasticly change the application runs. If the default parameters do not work for you, try to adjust them somewhat. SatinAs part of the assignment, you are required to turn the sequential program provided into a Satin application. Satin is a parallel programming environment for divide-and-conquer parallelization, and master-worker parallelization. Satin extends Java with two simple primitives for divide-and-conquer programming: spawn and sync. Satin is implemented using the IPL communication library and is part of the Ibis project. For more information and downloads see the Ibis website. The JavaGATAfter developing and testing your application on your local machine, use the JavaGAT to deploy it on the DAS-3 system. JavaGAT is the Java version of the Grid Application Toolkit (GAT) developed by the Gridlab project. The JavaGAT provides a set of interfaces which allow you to perform the basic tasks needed on a grid, such as copying files or scheduling jobs. In a grid environment, there are often many different ways of performing the same task. For example, a file can be copied using any one of the following commands: cp, scp, ftp, gsiftp, gridftp, globus-url-copy or wget. Although each of these command are somehow different, in the end they all perform the same task; copying a file. The purpose of the GAT is to hide most of this complexity from the programmer. For each of the basic tasks that applications need to perform on the grid the GAT offers a single (and simple) interface. This interface allows the application to perform the task it is interested in (copying a file for example), without having to worry about how this is exactly implemented. The GAT is designed in a modular plug-and-play manner. This allows multiple implementations (called adaptors in the GAT) of each interface. The file copy interface, for example, has an implementation (cp), an ssh implementation (scp), an ftp implementation, etc. When the application is trying to use an interface, the GAT will decide which implementation to use, depending on the information it has available (such as source and target URLs, user certificates, etc). Multiple implementations of the same interface may even be used at the same time. Sometimes the GAT does need some help from the application. When starting a job, for example, there may be more than one way of running it. It can always run it locally, but this is usually not what you want. It may also be able to submit it to some cluster using Globus or start it on some remote machine using ssh. In these cases, you can help the GAT by explicity specifying where you want to run and which adaptor you which to use. For example, by providing te following information to JavaGAT:
"ResourceBroker.adaptor.name", "globus" The DAS-3 SystemWe will use the the Distributed ASCI Supercomputer (DAS-3) as the platform for the practical Send me an e-mail if you don't have an account yet.The DAS-3 system consist of 5 clusters, each located in a different university. To use the DAS-3, you can log in to our local frontend machine (fs0.das3.cs.vu.nl) using ssh. For security reasons, this can only be done from VU machines. Once you are on the frontend machine, you can use ssh to get access to one of the other frontends. If you are located at any of the other DAS sites you can ofcourse login to your local cluster instead. Once you've logged in to one of the frontend machines, you can use it for development and to start jobs on one or more of its compute nodes (using the JavaGAT for example). You should not run cpu intensive applications on the frontend itself, since it used by many users simulateously and also servers as a file server. You may get a lot of angry e-mails if you are using too much CPU-time on one of the frontends! To be able to submit jobs to the one of the DAS clusters, the JavaGAT will use Globus, for which you need a certificate from DutchGrid. If you do not have a Globus certificate already you should get a Demo certificate, which is good enough for submitting jobs to the entire DAS-3 system. The website to request a certificate can be found here. Make sure you select Demo certification at the bottom of the form. For this demo certificate, you only have to fill in the fields marked with a star. Here's an example (click for a larger version) ![]() Once you've installed the certificate, you can use the following command to generate a certificate-proxy: grid-proxy-init The generate a certificate-proxy will have a limited lifetime (12 hours or so). After it has expired you'll need to generate a new one. If your current certificate is expired, you may get the following error when trying to submit a job: Proxy file (/tmp/x509up_uXYZ) not found. Your DutchGrid certificate needs to be added to the Globus
administration on the DAS before you can use it. To do this, you must
first install your certificate in your fs0 home directory ant then
type: AssignmentIn order to complete this practical, please follow the following receipe:
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||