4 research outputs found

    NetStep: a micro-stepped distributed network simulation framework

    Get PDF
    short paper.International audienceThis paper presents NetStep, a prototype for the distributed simulation of very large scale network simulations, such as the simulation of peer-to-peer applications. We use simulation micro-steps as a means for optimizing the overlap of communications and computations, without changing the original event-driven model. As a consequence, NetStep allows for the reuse of unmodified existing sequential simulators for building large-scale distributed simulations: the overall simulation is divided both in time and space, into a large number of simulation micro-steps, each of which being executed by a legacy sequential simulator. By choosing the time-step smaller than the minimal look-ahead due to communications, we avoid the need for synchronization between Logical Processes during the simulation. Instead, the simulated communications become inputs and outputs of the simulation micro-steps, and are routed in parallel between LPs by a NetStep dedicated entity. Our prototype is based on the SimGrid sequential simulator

    Precise subtyping for asynchronous multiparty sessions

    Get PDF
    Session subtyping is a cornerstone of refinement of communicating processes: a process implementing a session type (i.e., a communication protocol) T can be safely used whenever a process implementing one of its supertypes T′ is expected, in any context, without introducing deadlocks nor other communication errors. As a consequence, whenever T T′ holds, it is safe to replace an implementation of T′ with an implementation of the subtype T, which may allow for more optimised communication patterns. We present the first formalisation of the precise subtyping relation for asynchronous multiparty sessions. We show that our subtyping relation is sound (i.e., guarantees safe process replacement, as outlined above) and also complete: any extension of the relation is unsound. To achieve our results, we develop a novel session decomposition technique, from full session types (including internal/external choices) into single input/output session trees (without choices). Previous work studies precise subtyping for binary sessions (with just two participants), or multiparty sessions (with any number of participants) and synchronous interaction. Here, we cover multiparty sessions with asynchronous interaction, where messages are transmitted via FIFO queues (as in the TCP/IP protocol), and prove that our subtyping is both operationally and denotationally precise. In the asynchronous multiparty setting, finding the precise subtyping relation is a highly complex task: this is because, under some conditions, participants can permute the order of their inputs and outputs, by sending some messages earlier or receiving some later, without causing errors; the precise subtyping relation must capture all such valid permutations — and consequently, its formalisation, reasoning and proofs become challenging. Our session decomposition technique overcomes this complexity, expressing the subtyping relation as a composition of refinement relations between single input/output trees, and providing a simple reasoning principle for asynchronous message optimisations

    Um middleware para computação paralela em clusters de multicores

    Get PDF
    Dissertação para obtenção do Grau de Mestre em Engenharia InformáticaA boa relação custo/performance dos aglomerados (clusters) de processadores multicore popularizou este tipo de plataforma no âmbito da High Performance Computing (HPC)- Computação de Alta Performance. No entanto, a programação de clusters é complexa, requerendo a consciência da sua arquitetura, o que prejudica o desenvolvimento, portabilidade e manutenção das aplicações. No caso particular dos clusters de multi-cores, esta complexidade aumenta quando os nós que compõem o cluster não são uniformes, quer no número de cores, quer na hierarquia de memórias cache. Este tipo de arquitetura já foi apelidada de Non-Uniform Cluster Computing (NUCC) [CGS+05], pois conjuga os conceitos de clustering e acesso não uniforme à memória. Neste contexto, é essencial o desenvolvimento de ferramentas que proporcionem níveis de abstração mais elevados, escondendo os detalhes subjacentes à arquitetura e às tecnologias necessárias à comunicação, escalonamento de tarefas, consistência de memória,entre outros. O trabalho desenvolvido pretende contribuir para o avanço do estado da arte nessa área. Propõe-se um middleware para programação paralela especialmente vocacionado para clusters de multi-cores, cujo desenho é inspirado no de Sistemas de Operação, no sentido de que, além de definir uma interface para as aplicações, define outra para o desenvolvimento de novos módulos (drivers) que permitem a especialização das suas funcionalidades para uma dada arquitetura alvo. O trabalho partiu de uma base já existente para memória partilhada, tendo sido estendido para arquiteturas de memória distribuída. Para tal, foram especializadas as camadas de interface, de suporte base e drivers para suportar estas arquiteturas, nomeadamente clusters de multi-cores

    Program-level Specification and Deductive Verification of Security Properties

    Get PDF
    Programs with publicly accessible interfaces are increasingly used to process confidential data. This makes it all the more important to control the information flow within such applications. This thesis shows how highly precise specification and deductive verification of language-based secure information flow can be made feasible. The approach does not rely on fixed approximations, but makes use of the precision provided by the underlying calculus for Java Dynamic Logic
    corecore