Dr Nathalie Furmento - Publications's abstracts

Book chapters

  1. [MMFCGYAND04a] Component Models and Systems for Grid Applications
    Scientists now have a greater desire to undertake work within global collaborations. This increases their dependence on distributed computation, storage and data resources. For this new paradigm of e-research to be easily adopted by the applied science community, it needs to be enabled by a new software infrastructure - Grid middleware. In this paper, we describe ICENI, an integrated Grid middleware that explores the services and meta-data necessary to support e-research within a variety of application domains. We focus on the services that we feel are necessary to facilitate Grid use, ranging from running a simple self contained application through to building a simulation from scientific software components distributed across a Grid, selecting the optimal combination of services to enact the simulation and paying for them on demand.
    Keywords: Grid Middleware, OGSA, Component Programming Model, e-Science, Scheduling, Performance, Advanced Reservations, Meta-data.

Journal papers

  1. [CFKMND05a] RealityGrid: An Integrated Approach to Middleware through ICENI
    The advancement of modelling and simulation within complex scientific applications is currently constrained by the rate at which knowledge can be extracted from the data produced. As Grid computing evolves, new means of increasing the efficiency of data analysis are being explored. RealityGrid aims to enable more efficient use of scientific computing resources within the condensed matter, materials and biological science communities. The Imperial College e-Science Networked Infrastructure (ICENI) Grid middleware provides an end-to-end pipeline that simplifies the stages of computation, simulation and collaboration. The intention of this work is to allow all scientists to have access to these features without the need for heroic efforts that have been associated with this sort of work in the past. Scientists can utilise advanced scheduling mechanisms to ensure efficient planning of computations, visualize and interactively steer simulations and securely collaborate with colleagues via the Access Grid through a single integrated middleware application.

  2. [MADFMY05a] Making the Grid Predictable through Reservations and Performance Modelling
    Unpredictable job execution environments pose a significant barrier to the widespread adoption of the Grid paradigm, because of the innate risk of jobs failing to execute at the time specified by the user. We demonstrate that predictability can be enhanced with a supporting infrastructure consisting of three parts: Performance modelling and monitoring, scheduling which exploits application structure and an advanced reservation resource management service. We prove theoretically that execution times using advanced reservations display less variance than those without. We also show that the costs of advanced reservations can be reduced by providing the system with more accurate performance models. Following the theoretical discussion, we describe the implementation of a fully functional workflow enactment framework that supports advanced reservations and performance modelling thereby providing predictable execution behavior. We further provide experimental results confirming our theoretical models.

  3. [FMMNFD02b] ICENI: Optimisation of Component Applications within a Grid Environment
    Effective exploitation of Computational Grids can only be achieved when applications are fully integrated with the Grid middleware and the underlying computational resources. Fundamental to this exploitation is information. Information about the structure and behaviour of the application, the capability of the computational and networking resources, and the availability and access to these resources by an individual, a group or an organisation.
    In this paper we describe ICENI (Imperial College e-Science Networked Infrastructure), a Grid middleware framework developed within the London e-Science Centre. ICENI is a platform independent framework that uses open and extensible XML derived protocols, within a framework built using Java and Jini, to explore effective application execution upon distributed federated resources. We match a high-level application specification, defined as a network of components, to an optimal combination of the currently available component implementations within our Grid environment, by using composite performance models. We demonstrate the effectiveness of this architecture through the high-level specification and solution of a set of linear equations by automatic and selection of optimal resources and implementations.

  4. [BCFS02a] Optimizing Remote Method Invocation with Communication-Computation Overlap
    In the framework of distributed object systems, this paper presents the concepts and an implementation of an overlapping mechanism between communication and computation. This mechanism allows to decrease the execution time of a remote method invocation with parameters of large size. Its implementation and related experiments in the C++// language running on top of Globus and Nexus are described.
    Keywords: Distributed Objects, C++, Remote Method Invocation, Pipelining

  5. [BBCFMRS96a] Parallel Object-Oriented Programming for Parallel Simulations
    This paper presents the development of a parallel object-oriented language which is an extension of C++, called C++//. C++// offers reusability, flexibility and extensibility in concurrent programming through a set of language primitives (indeed a Meta-Object Protocol), independent of any parallel paradigm. It permits us to build libraries of nearly all concurrent programming models. One of them, presented here, is an MIMD model based on data-flow synchronizations (wait-by-necessity). C++// runtime main concern is versatility so its implementation is in fact an interface to any low-level runtime support.
    C++// is used to define and implement Prosit, an object-oriented framework for distributed discrete event simulation. In the paper, we highlight the features which are crucial for the development of this generic simulation environment, mainly expressiveness, end-user adaptation and a strong reuse potential. All those important features are directly provided by the use of C++//.
    Prosit and C++// are part of the SLOOP project developments.

Conference papers

  1. [AumBruFurNam07CAC] NewMadeleine: a Fast Communication Scheduling Engine for High Performance Networks
    Communication libraries have dramatically made progress over the fifteen years, pushed by the success of cluster architectures as the preferred platform for high performance distributed computing. However, many potential optimizations are left unexplored in the process of mapping application communication requests onto low level network commands. The fundamental cause of this situation is that the design of communication subsystems is mostly focused on reducing the latency by shortening the critical path. In this paper, we present a new communication scheduling engine which dynamically optimizes application requests in accordance with the NICs capabilities and activity. The optimizing code is generic and portable. The database of optimizing strategies may be dynamically extended.

  2. [FHLND04a] Implementations of a Service-Oriented Architecture on top of Jini, JXTA and OGSI
    This paper presents the design of an implementation-independent Service-Oriented Architecture (SOA) which is the main basis of the ICENI Grid middleware. Three implementations of this architecture have been provided on top of Jini, JXTA and the Open Grid Services Infrastructure (OGSI). The main goal of this paper is to discuss these different implementations and provide an analysis of their advantages and disadvantages.
    Keywords: Service-Oriented Architecture, Grid Middleware, Jini, JXTA, OGSI.

  3. [ABB03a] Building the e-Science Grid in the UK: Middleware, Applications and Tools deployed at Level 2
    Over the period September 2002-April 2003 the UK Grid Engineering Task Force and staff at Regional e-Science Centres and CCLRC deployed the Globus Toolkit GT2 at 14 sites and on approximately 80 compute resources to set up the first production-quality e-Science Grid for the UK. This work is proving to be exemplary of what can be achieved using heterogeneous resources on a national scale and is feeding discussions on how to link Grids with multiple virtual organisations across Europe. This paper therefore reports on experiences of this deployment exercise, compares with other efforts worldwide and suggests further work to be done.

  4. [MMFLND03a] ICENI Dataflow and Workflow: Composition and Scheduling in Space and Time
    With the prevalence of component based and service oriented architectures used to support e-Science activities, we examine different views of application composition supported within these systems, which tend to be spatial composition in the former case, and temporal composition (workflow) in the latter. We consider the advantages of each view; spatial composition enables, dynamic programming, while temporal composition provides information useful for performance analysis. ICENI uses a spatial composition view to allow maximum flexibility, but provides an inferred temporal composition to support scheduling optimisation. We describe the graph based language used to annotate component behaviours, and discuss optimisations derived from estimating execution time - with or without loops - and resource sharing. Two examples drawn from e-Science pilot pro jects are used to illustrate these techniques.

  5. [FLND03a] Test and Deployment of ICENI, An Integrated Grid Middleware on the UK e-Science Grid
    This paper presents a test and deployment infrastructure that has been developed to validate the ICENI Grid Middleware. Services have been developed to monitor the different steps in the life of the middleware from its compilation to its execution. We will show how these services can be composed to provide a full validation of the architecture and the functionalities of ICENI. We also present a MDS to ICENI Gateway used to register machines currently available in the MDS Server as ICENI launcher services.

  6. [FLMND02a] ICENI: An Open Grid Service Architecture Implemented with Jini
    The move towards Service Grids, where services are composed to meet the requirements of a user community within constraints specified by the resource provider, present many challenges to service provision and description. To support our research activities in the autonomous composition of services to form a Semantic Service Grid we describe the adoption within ICENI of web services to enable interoperability with the recently proposed Open Grid Services Architecture.
    Keywords: Computational Grids, Web Services, Semantic Grid

  7. [NMFMSD02a] Laying the Foundations for the Semantic Grid
    Information relating to the resources, applications and the user's wishes are key to the transparent and effective exploitation of the federated resources within Computational Grids. These federated data, computational or software resources are owned by real organisations and made available as services to different computational communities or virtual organisations spanning multiple administrative boundaries. Higher-level services use the information relating to the resources' capability and the mechanisms for service fulfilment to automatically discover interoperable services and select the most appropriate service for the user with minimal human intervention.
    Within this paper we describe a service-oriented Grid architecture that utilises existing web service protocols to federate resources into computational communities. The service-oriented information contained in the computational communities is exploited by higher-level services to ensure effective utilisation of the resources by both its providers (the resource owners) and consumers (the users). We believe the systematic definition, presentation and exploitation of such information constitutes the first step towards the construction of a Semantic Grid.

  8. [FMMNFD01a] Optimisation of Component-based Applications within a Grid Environment
    Effective exploitation of computational grids can only be achieved when applications are fully integrated with the grid middleware and the underlying computational resources. Fundamental to this exploitation is information. Information about the structure and behaviour of the application, the capability of the computational and networking resources, and the availability and access to these resources by an individual, a group or an organisation.
    This paper describes an integrated grid environment that is open, extensible and platform independent. We match a high-level application specification, defined as a network of components, to an optimal combination of the currently available component implementations within our grid environment. We demonstrate the effectiveness of this architecture through high-level specification and solution of a set of linear equations by automatic and optimal resource and implementation selection.

  9. [FNNNFD01b] An Integrated Grid Environment for Component Applications
    Computational grids present many obstacles to their effective exploitation by non-trivial applications. We present a grid middleware, implemented using Java and Jini, that eliminates these obstacles through the intelligent use of meta-data relating to the structure, behaviour and performance of an application. We demonstrate how different problem sizes and selection criteria (minimum execution time or minimum cost) utilise different implementations for the optimal solution of a set of linear equations.

  10. [FND01a] Building Computational Communities from Federated Resources
    We describe the design and the implementation in Java and Jini of a Computational Community, which supports the federation of resources from different organisations. Resources from the local Administrative Domain are published in a Jini space to form a Computational Community. Different access control policies can be applied to the same resource in different Computational Communities. We show how this architecture can be extended through the addition of an Application Mapper and Resource Broker to build a computational economy.
    Keywords: Computational Community, Computational Economy, Grid Computing, Distributed Systems.

  11. [FMMND01a] A Component Framework for HPC Applications
    We describe a general component software framework designed for demanding grid environments that provides optimal performance for the assembled component application. This is achieved by separating the high level abstract description of the composition from the low level implementations. These implementations are chosen at run time by performance analysis of the composed application on the currently available resources. We show through the solution of a simple linear algebra problem that the framework introduces minimal overheads while always selecting the most effective implementation.
    Keywords: Component Composition, Grid Computing, Performance Optimisation, High Level Abstraction.

  12. [BCFS01a] Optimizing Metacomputing with Communication-Computation Overlap
    In the framework of distributed object systems, this paper presents the concepts and an implementation of an overlapping mechanism between communication and computation. This mechanism allows to decrease the execution time of a remote method invocation with parameters of large size. Its implementation and related experiments in the C++// language running on top of Globus and Nexus are described.
    Keywords: Distributed Objects, C++, Metacomputing, Nexus/Globus, Lightweight Process, Remote Method Invocation, Pipelining, Future, Overlapping communication and computation

  13. [JFMS99b] A traffic simulator for advanced transport telematics (ATT) strategies
    ATT systems are now widely deployed. The traffic simulation models need to represent ATT elements and the driver's reactions to them. We present a model for traffic simulation of systems with ATT elements and the simulator developed using this model.

  14. [JFMS99a] Un Framework à Objets pour la Simulation de Trafic Routier
    Nous présentons une architecture générale pour la simulation microscopique de trafic routier. Cet environnement permet l'étude de modèles différents de simulation de trafic ainsi que l'ajout ou la modification des fonctionnalités de façon très simple et rapide. Le simulateur de trafic urbain conçu sous ce modèle a les caractéristiques nécessaires pour être en accord avec l'état de l'art et comprend des outils pour l'interconnexion avec des contrôleurs de trafic. Le modèle peut également être utilisé pour d'autres applications.

  15. [BCFS99a] Overlapping Communication with Computation in Distributed Object Systems
    In the framework of distributed object systems, this paper presents the concepts and an implementation of an overlapping mechanism between communication and computation. This mechanism allows to decrease the execution time of a remote method invocation.

  16. [FB96a] Schooner: An Object-Oriented Run-time Support for Distributed Applications
    This article presents Schooner (which stands for Sloop Communication Library for High-level, Object-Oriented, aNd Efficient Remote Exchanges) which is a library of classes used for writing parallel and distributed applications in C++. This library consists in an object-oriented run-time support.
    Its main purposes are (1) to be independent of the used communication protocol; (2) to give the user a structured and abstract view of its application (farm of available computers, set of computation nodes); and (3) to allow a straightforward redefinition of its behaviours. Advantages using an object-oriented language are mainly modularity and reusability: for example, it is straightforward to add a new message type or to change the application scalability.
    Keywords: Parallelism, Object paradigm, Run-time environments, Distribution, Portability.

  17. [BFCNGM96a] C++// on top of PM2 via Schooner
    One of the research objectives of the SLOOP project is the development of C++//, a parallel extension of C++ language. C++// is built on top of Schooner, an object-oriented support, itself based on PM2, an environment developed by the Espace project, which provides a computing model based on lightweight process. The purpose of this article is to present this structuring.

  18. [Fur96a] Schooner : Une Librairie de Communications Orientée-Objet pour le Développement d'Applications Parallèles
    Cet article présente succinctement les concepts de Schooner, une librairie de communications orientée-objet destinée à la programmation d'applications parallèles. Une présentation plus complète de la librairie pourra être trouvée dans [BaFu95a].
    Mots-clés : C++, parallélisme, programmation orientée-objet.

  19. [SLOOP96a] The SLOOP project: Simulations, Parallel Object-Oriented Languages, Interconnection Networks
    We give an overwiew of the SLOOP project. A synthetic version of its organization, and each component are presented. This presentation however, primarily focuses on the parallel object-oriented language and simulation aspects.

  20. [BFG95a] Parallel and Distributed Simulation of Free Choice Nets
    In this paper, we present two new methods to simulate Petri Net : a data parallel simulation and a distributed simulation. Both simulations use an equational representation of the net in the so called (min, +) algebra. The data parallel simulation is based on the use of matrix representation of these equations, and the distributed simulation on the decomposition of a Petri Net into marked graph components.

  21. [FRS95a] Parallélisme et Distribution en C++
    Nous étudions dans cet article plusieurs extensions parallèles et distribuées du langage objet C++. Nous dégageons des critères permettant d'analyser leurs spécificités et l'impact qu'elles ont sur le modèle objet adopté dans C++. Cette étude a fait l'objet d'un travail plus détaillé, présenté dans [FRS95b].

  22. [BFL94a] Managing True Parallelism in ADA through PVM
    There is a quite large community of developpers using ADA, especially for computation intensive problems, like scientific ones. ADA is well known for providing the user with concurrency expression features. But the concurrent ADA tasks yield very seldom to truly parallel task. On one hand, ADA is a very attractive language from the software engineering point of view, but it lacks of true parallelism expression and easily portable parallel run-times. On the other hand, PVM is implemented on more and more platforms, thus providing a standard and portable run-time for parallel and distributed programs. The underlying idea of this paper is to build an ADA package which gives ADA programs easy access to the PVM primitives.

Invited talks

  1. [FMMNFD02a] ICENI: Optimising Component Applications within a Grid Environment
    This presentation will discuss ICENI (the Imperial College e-Science Networked Infrastructure), a platform independent Grid middleware framework that uses open and extensible XML derived protocols, implemented using Java and Jini, to explore effective application execution upon distributed federated resources. It captures and exploits meta-data relating to the structure and behaviour of the applications, the capability of the computational and networking resources, and the availability and access to these resources by an individual, a group or an organisation.

Research and Technical reports

  1. [FuMe05b] MPICH/Madeleine Installer's, User's and Developer's Guide
    MPICH/Madeleine is a new free implementation of the MPI standard based on the MPICH implementation and the multi-protocol communication library called Madeleine. It aims to efficiently exploit clusters of clusters with heterogeneous networks. This manual presents an installer's, user's and developer's guide for MPICH/ Madeleine.
    Keywords: MPI,Communication,Heterogeneous Networks

  2. [FuMe05a] Optimisation Mechanisms for MPICH/Madeleine
    This report presents optimisations mechanisms within MPICH/Madeleine , the implementation of MPICH over Madeleine. These mechanisms aim to decrease the communication time of derived datatypes for which data is stored in noncontiguous memory areas. The report presents the mechanisms as well as some performance evaluation.
    Keywords: MPI, Madeleine, Derived Datatypes, Communication Times

  3. [FMMND01b] Performance Models for Linear Solvers within a Component Framework
    This technical report details the performance models used for determining the most optimal selection of components for our system. The techniques for generating these performance models is also described.

  4. [BaFu95a] Schooner: An Oriented-Object Runtime Support for Distributed Applications
    This article presents Schooner (which stands for Sloop Communication Library for High-level, Object-Oriented, aNd Efficient Remote Exchanges) which is a library of classes used for writing parallel and distributed applications in C++. This library consists in an object-oriented run-time support. Its main purposes are: Keywords: Parallelism, Object paradigm, Run-time environments, Distribution, Portability.

  5. [FRS95b] Parallélisme et Distribution en C++. Une Revue des Langages Existants.
    This report presents a survey of existing parallel and distributed extensions of the object oriented language C++.
    First, we discuss the different programming models and analyse how the parallelism is introduced. In the analysis, the declaration of concurrent entity and the new parallel constructions are treated separately and thoroughly. We also study the integration of control mechanisms in object oriented features, and the constraints resulting from distribution.
    The reader will find in appendix a synthetic presentation and a general description of over twenty extensions.
    A short version [FRS95a] of this report has been presented in Septièmes Rencontres Francophones du Parallélisme (RenPar'7).
    Keywords: C++, Parallelism, Distribution, Concurrency.

Thesis

  1. [Fur99a] Schooner : Une Encapsulation Orientée Objet de Supports d'Exécution pour Applications Réparties
    Le sujet de cette thèse est la conception d'un support d'exécution orienté objet pour applications réparties. Un des principaux objectifs est de permettre de correctement isoler le code lié à la gestion du support d'exécution du code propre à l'application. D'autre part, un tel support se doit d'être portable sur le plus grand nombre de plate-formes ; pour cela son interface de programmation doit être minimale tout en restant extensible. La prise en compte de tels critères permet d'obtenir un support pour une grande variété d'applications réparties. Nous avons donc conçu et implémenté un support d'exécution sous la forme d'une bibliothèque de classes appelée Schooner. Le modèle de programmation de la bibliothèque s'articule autour des notions de machine virtuelle et d'entités réparties communiquant par messages actifs. En plus de ce modèle de base, nous avons également développé une extension multi-active permettant l'utilisation de processus légers. Afin de compléter et valider Schooner, des outils d'aide au développement et de mise au point d'applications réparties sont également fournis. Une des caractéristiques importantes de l'environnement fourni est d'être facilement personnalisable selon les besoins spécifiques d'une application en permettant par exemple une amélioration des performances. Dans ce contexte, nous proposons un mécanisme de bufferisation des messages entre deux entités communicantes, mécanisme entièrement paramétrable par l'utilisateur. Il est également envisageable dans le cadre de la version multi-active de modifier l'ordonnancement des entités actives. Cet environnement a pu être validé par le développement de deux applications de taille conséquente : la version répartie d'un simulateur à événements discrets orienté objet, Prosit et une extension répartie et parallèle du langage C++, C++//.
    Mots-Clefs : Répartition / Parallélisme / Support d'exécution / Support de communication / Programmation orientée objet / Portabilité

  2. [Fur94a] Accès à PVM par l'Intermédiaire du Langage ADA dans un Objectif de Programmation Conviviale d'Applications Parallèles
    Ces derniers temps, les applications utilisant le calcul parallèle ont connu un essor considérable. Afin d'augmenter la rentabilité de ces applications, il serait souhaitable pour les développeurs que celles-ci soient portables sur plusieurs types de machine parallèles différentes. Mais le problème avec la plupart des architectures massivement parallèles, est qu'à chaque modèle de machine est associé un modèle de programmation et donc un certain type de langage.
    La solution proposée dans le cadre de ce stage est de fournir une librairie permettant d'écrire des applications parallèles qui pourraient s'exécuter sur des machines connectées en réseau, sans pour autant disposer d'une machine parallèle.


Automatically generated on 2017-10-20 at 13:53