35 research outputs found

    GRID superscalar: a programming model for the Grid

    Get PDF
    Durant els darrers anys el Grid ha sorgit com una nova plataforma per la computaci贸 distribu茂da. La tecnologia Gris permet unir diferents recursos de diferents dominis administratius i formar un superordinador virtual amb tots ells. Molts grups de recerca han dedicat els seus esfor莽os a desenvolupar un conjunt de serveis b脿sics per oferir un middleware de Grid: una capa que permet l'煤s del Grid. De tota manera, utilitzar aquests serveis no 茅s una tasca f谩cil per molts usuaris finals, cosa que empitjora si l'expertesa d'aquests usuaris no est脿 relacionada amb la inform脿tica.Aix貌 t茅 una influ猫ncia negativa a l'hora de que la comunitat cient铆fica adopti la tecnologia Grid. Es veu com una tecnologia potent per貌 molt dif铆cil de fer servir. Per facilitar l'煤s del Grid 茅s necess脿ria una capa extra que amagui la complexitat d'aquest i permeti als usuaris programar o portar les seves aplicacions de manera senzilla.Existeixen moltes propostes d'eines de programaci贸 pel Grid. En aquesta tesi fem un resum d'algunes d'elles, i podem veure que existeixen eines conscients i no-conscients del Grid (es programen especificant o no els detalls del Grid, respectivament). A m茅s, molt poques d'aquestes eines poden explotar el paral路lelisme impl铆cit de l'aplicaci贸, i en la majoria d'elles, l'usuari ha de definir aquest paral路lelisme de manera expl铆cita. Una altra caracter铆stica que considerem important 茅s si es basen en llenguatges de programaci贸 molt populars (com C++ o Java), cosa que facilita l'adopci贸 per part dels usuaris finals.En aquesta tesi, el nostre objectiu principal ha estat crear un model de programaci贸 pel Grid basat en la programaci贸 seq眉encial i els llenguatges m茅s coneguts de la programaci贸 imperativa, capa莽 d'explotar el paral路lelisme impl铆cit de les aplicacions i d'accelerar-les fent servir els recursos del Grid de manera concurrent. A m茅s, com el Grid 茅s de naturalesa distribu茂da, heterog猫nia i din脿mica i degut tamb茅 a que el nombre de recursos que pot formar un Grid pot ser molt gran, la probabilitat de que es produeixi una errada durant l'execuci贸 d'una aplicaci贸 茅s elevada. Per tant, un altre dels nostres objectius ha estat tractar qualsevol tipus d'error que pugui sorgir durant l'execuci贸 d'una aplicaci贸 de manera autom脿tica (ja siguin errors relacionats amb l'aplicaci贸 o amb el Grid). GRID superscalar (GRIDSs), la principal contribuci贸 d'aquesta tesi, 茅s un model de programaci贸 que assoleix elsobjectius mencionats proporcionant una interf铆cie molt petita i simple i un entorn d'execuci贸 que 茅s capa莽 d'executar en paral路lel el codi proporcionat fent servir el Grid. La nostra interf铆cie de programaci贸 permet a un usuari programar una aplicaci贸 no-conscient del Grid, amb llenguatges imperatius coneguts i populars (com C/C++, Java, Perl o Shell script) i de manera seq眉encial, per tant d贸na un pas important per ajudar als usuaris a adoptar la tecnologia Grid.Hem aplicat el nostre coneixement de l'arquitectura de computadors i el disseny de microprocessadors a l'entorn d'execuci贸 de GRIDSs. Tal com es fa a un processador superescalar, l'entorn d'execuci贸 de GRIDSs 茅s capa莽 de realitzar un an脿lisi de depend猫ncies entre les tasques que formen l'aplicaci贸, i d'aplicar t猫cniques de renombrament per incrementar el seu paral路lelisme. GRIDSs genera autom脿ticament a partir del codi principal de l'usuari un graf que descriu les depend猫ncies de dades en l'aplicaci贸. Tamb茅 presentem casos d'煤s reals del model de programaci贸 en els camps de la qu铆mica computacional i la bioinform脿tica, que demostren que els nostres objectius han estat assolits.Finalment, hem estudiat l'aplicaci贸 de diferents t猫cniques per detectar i tractar fallades: checkpoint, reintent i replicaci贸 de tasques. La nostra proposta 茅s proporcionar un entorn capa莽 de tractar qualsevol tipus d'errors, de manera transparent a l'usuari sempre que sigui possible. El principal avantatge d'implementar aquests mecanismos al nivell del model de programaci贸 茅s que el coneixement a nivell de l'aplicaci贸 pot ser explotat per crear din脿micament una estrat猫gia de toler脿ncia a fallades per cada aplicaci贸, i evitar introduir sobrec脿rrega en entorns lliures d'errors.During last years, the Grid has emerged as a new platform for distributed computing. The Grid technology allows joining different resources from different administrative domains and forming a virtual supercomputer with all of them.Many research groups have dedicated their efforts to develop a set of basic services to offer a Grid middleware: a layer that enables the use of the Grid. Anyway, using these services is not an easy task for many end users, even more if their expertise is not related to computer science. This has a negative influence in the adoption of the Grid technology by the scientific community. They see it as a powerful technology but very difficult to exploit. In order to ease the way the Grid must be used, there is a need for an extra layer which hides all the complexity of the Grid, and allows users to program or port their applications in an easy way.There has been many proposals of programming tools for the Grid. In this thesis we give an overview on some of them, and we can see that there exist both Grid-aware and Grid-unaware environments (programmed with or without specifying details of the Grid respectively). Besides, very few existing tools can exploit the implicit parallelism of the application and in the majority of them, the user must define the parallelism explicitly. Another important feature we consider is if they are based in widely used programming languages (as C++ or Java), so the adoption is easier for end users.In this thesis, our main objective has been to create a programming model for the Grid based on sequential programming and well-known imperative programming languages, able to exploit the implicit parallelism of applications and to speed them up by using the Grid resources concurrently. Moreover, because the Grid has a distributed, heterogeneous and dynamic nature and also because the number of resources that form a Grid can be very big, the probability that an error arises during an application's execution is big. Thus, another of our objectives has been to automatically deal with any type of errors which may arise during the execution of the application (application related or Grid related).GRID superscalar (GRIDSs), the main contribution of this thesis, is a programming model that achieves these mentioned objectives by providing a very small and simple interface and a runtime that is able to execute in parallel the code provided using the Grid. Our programming interface allows a user to program a Grid-unaware application with already known and popular imperative languages (such as C/C++, Java, Perl or Shell script) and in a sequential fashion, therefore giving an important step to assist end users in the adoption of the Grid technology.We have applied our knowledge from computer architecture and microprocessor design to the GRIDSs runtime. As it is done in a superscalar processor, the GRIDSs runtime system is able to perform a data dependence analysis between the tasks that form an application, and to apply renaming techniques in order to increase its parallelism. GRIDSs generates automatically from user's main code a graph describing the data dependencies in the application.We present real use cases of the programming model in the fields of computational chemistry and bioinformatics, which demonstrate that our objectives have been achieved.Finally, we have studied the application of several fault detection and treatment techniques: checkpointing, task retry and task replication. Our proposal is to provide an environment able to deal with all types of failures, transparently for the user whenever possible. The main advantage in implementing these mechanisms at the programming model level is that application-level knowledge can be exploited in order to dynamically create a fault tolerance strategy for each application, and avoiding to introduce overhead in error-free environments

    Feasibility Analysis of Various Electronic Voting Systems for Complex Elections

    Get PDF

    Reports to the President

    Get PDF
    A compilation of annual reports for the 1999-2000 academic year, including a report from the President of the Massachusetts Institute of Technology, as well as reports from the academic and administrative units of the Institute. The reports outline the year's goals, accomplishments, honors and awards, and future plans
    corecore