5 research outputs found

    CYCLIC: A Locality-Preserving Load-Balancing Algorithm for PDES on Shared Memory Multiprocessors

    Get PDF
    This paper presents a new load-balancing algorithm for shared memory multiprocessors that is currently being applied to the parallel simulation of logic circuits, specifically VHDL simulations. The main idea of this load-balancing algorithm is based on the exploitation of the usual characteristics of these simulations, that is, cyclicity and predictability, to obtain a good load balance while preserving the locality of references. This algorithm is useful not only in the area of logic circuit simulation but also in systems presenting a cyclic execution pattern, that is, repetition over time, making the future behavior of the tasks predictable. An example of this is Parallel Discrete Event Simulation (PDES), where several tasks are repeatedly executed in response to certain events. A comparison between the proposed algorithm and other load-balancing algorithms found in the literature reveals consistently better execution times with improvements in both load-balancing and locality of references that can be of help on current multicore desktop computers

    Gestión de recursos en nodos multi-core de memoria compartida

    Get PDF
    La gestión de recursos en los procesadores multi-core ha ganado importancia con la evolución de las aplicaciones y arquitecturas. Pero esta gestión es muy compleja. Por ejemplo, una misma aplicación paralela ejecutada múltiples veces con los mismos datos de entrada, en un único nodo multi-core, puede tener tiempos de ejecución muy variables. Hay múltiples factores hardware y software que afectan al rendimiento. La forma en que los recursos hardware (cómputo y memoria) se asignan a los procesos o threads, posiblemente de varias aplicaciones que compiten entre sí, es fundamental para determinar este rendimiento. La diferencia entre hacer la asignación de recursos sin conocer la verdadera necesidad de la aplicación, frente a asignación con una meta específica es cada vez mayor. La mejor manera de realizar esta asignación és automáticamente, con una mínima intervención del programador. Es importante destacar, que la forma en que la aplicación se ejecuta en una arquitectura no necesariamente es la más adecuada, y esta situación puede mejorarse a través de la gestión adecuada de los recursos disponibles. Una apropiada gestión de recursos puede ofrecer ventajas tanto al desarrollador de las aplicaciones, como al entorno informático donde ésta se ejecuta, permitiendo un mayor número de aplicaciones en ejecución con la misma cantidad de recursos. Así mismo, esta gestión de recursos no requeriría introducir cambios a la aplicación, o a su estrategia operativa. A fin de proponer políticas para la gestión de los recursos, se analizó el comportamiento de aplicaciones intensivas de cómputo e intensivas de memoria. Este análisis se llevó a cabo a través del estudio de los parámetros de ubicación entre los cores, la necesidad de usar la memoria compartida, el tamaño de la carga de entrada, la distribución de los datos dentro del procesador y la granularidad de trabajo. Nuestro objetivo es identificar cómo estos parámetros influyen en la eficiencia de la ejecución, identificar cuellos de botella y proponer posibles mejoras. Otra propuesta es adaptar las estrategias ya utilizadas por el Scheduler con el fin de obtener mejores resultados.La gestió de recursos en els processadors multi-core ha guanyat importància amb l'evolució de les aplicacions i arquitectures. Però aquesta gestió és molt complexa. Per exemple, una mateixa aplicació paral·lela executada múltiples vegades amb les mateixes dades d'entrada, en un únic node multi-core, pot tenir temps d'execució molt variables. Hi han múltiples factors del maquinari i programari que afecten el rendiment. La forma en què els recursos del maquinari (còmput i memòria) s'assignen als processos o threads, possiblement de diverses aplicacions que competeixen entre si, és fonamental per determinar aquest rendiment. La diferència entre fer assignació dels recursos sense conèixer la veritable necessitat de l'aplicació, amb una assignació amb un objectiu específic és cada vegada més gran. La millor manera de fer aquesta assignació és automàticament, amb una mínima intervenció del programador. És important destacar que, la forma en que l'aplicació s'executa en una arquitectura, no necessàriament és la més adequada; i aquesta situació pot millorar a través de la gestió adequada dels recursos disponibles. Una apropiada gestió de recursos pot oferir avantatges tant al desenvolupador de les aplicacions, a través d'una correcta abstracció en l'administració d'aquests recursos, així com a l'entorn informàtic on aquesta s'executa, permetent un major nombre d'aplicacions en execució amb la mateixa quantitat de recursos. Així mateix, aquesta gestió dels recursos no requeriria introduir canvis a l'aplicació, o a la seva estratègia operativa. Per tal de proposar polítiques per a la gestió dels recursos, es va analitzar el comportament de aplicacions intensives de còmput i intensives de memòria. Aquest anàlisi es va dur a terme a través de l'estudi dels paràmetres d'ubicació entre els cores, la necessitat d'usar la memòria compartida, la mida de la càrrega d'entrada, la distribució de les dades dins del processador i la granularitat de treball. El nostre objectiu és identificar com aquests paràmetres influeixen en l'eficiència de l'execució, identificar colls d'ampolla i proposar possibles millores. Una altra proposta és adaptar les estratègies ja utilitzades pel Scheduler amb la finalitat d'obtenir millors resultats.Resource management in Multi-core processors has become more important with the evolution of applications and architectures. However, this management is very complex. For example, the same parallel application running several times with the same input data in a single multi-core node, can have variable times of execution. There are many hardware and software factors that affect performance. The way that resources (computation and memory) are distributed among the processes or threads, possibly belonging to multiple applications that compete with each other, is crucial to determine its performance. The difference between doing this distribution of resources without knowing real application requirements and the distribution with a specific purpose is increasing. The best way to do this distribution is automatically, with minimal intervention from the programmer. It is important to emphasize that the way an application is executed on an architecture, is not necessarily the best and this situation can be improved by appropriate management of available resources. A proper management of resources can offer advantages to application developers, through a correct abstraction in the administration of these resources, as well as the computing environment where it runs, allowing a greater number of applications running with the same quantity of resources. Therefore, this resource management does not require changes in the application or in its execution. With the intention to propose policies for resource management, the behavior of intensive applications in computation and memory was analyzed. This analysis was done through the study of parameters location between the cores, necessity of using shared memory, the size of the load input, the distribution of data within the processor and the granularity of work. Our purpose is to identify how these parameters affect the efficiency of implementation, identify bottlenecks and propose possible improvements. Another proposal is to adapt the strategy already used by the Scheduler with the intention to obtain better results.A gestão de recursos nos processadores multi-core ganhou importância com a evolução das aplicações e arquiteturas. Porém esta gestão é muito complexa. Por exemplo, uma mesma aplicação paralela executando muitas vezes com os mesmo dados de entrada, em um único nó multi-core, pode ter tempos de execução muito variáveis. Existem muitos fatores de hardware e software que afetam este rendimento. A forma que os recursos (cômputo e memória) se distribuem entre os processos ou threads, possivelmente de várias aplicações que competem entre si, é fundamental para determinar o seu rendimento. A diferença entre fazer esta distribuição de recursos sem conhecer a verdadeira necessidade da aplicação, por uma distribuição com um objetivo específico é cada vez maior. A melhor maneira de fazer esta distribuição é automaticamente, com uma mínima intervenção do programador. É importante destacar, que a forma em que a aplicação se executa em uma arquitetura não é necessariamente a mais adequada, e está situação pode melhorar através da gestão adequada dos recursos disponíveis. Uma apropriada gestão dos recursos pode oferecer vantagens tanto para o desenvolvedor das aplicações, através de uma correta abstração na administração destes recursos, assim como o ambiente informático onde se executa, permitindo um maior numero de aplicações em execução com a mesma quantidade de recursos. Assim mesmo, esta gestão de recursos não requer introduzir mudanças na aplicação, ou na sua forma de execução. Com a intenção de propor políticas para a gestão de recursos, analisamos o comportamento de aplicações intensivas em cômputo e memória. Está análise foi feita através dos estudos dos parâmetros de localização entre os cores, a necessidade de uso da memória compartilhada, o tamanho da carga de entrada, a distribuição dos dados dentro do processador e a granularidade de trabalho. Nosso objetivo é identificar como estes parâmetros influem na eficiência da execução, identificar gargalos e propor possíveis melhoras. Outra proposta é adaptar a estratégia já utilizada pelo Scheduler com a intenção de obter melhores resultados

    El impacto de las aplicaciones intensivas de E/S en la planificación de trabajos en clusters no-dedicados

    Get PDF
    Con la mayor capacidad de los nodos de procesamiento en relación a la potencia de cómputo, cada vez más aplicaciones intensivas de datos como las aplicaciones de la bioinformática, se llevarán a ejecutar en clusters no dedicados. Los clusters no dedicados se caracterizan por su capacidad de combinar la ejecución de aplicaciones de usuarios locales con aplicaciones, científicas o comerciales, ejecutadas en paralelo. Saber qué efecto las aplicaciones con acceso intensivo a dados producen respecto a la mezcla de otro tipo (batch, interativa, SRT, etc) en los entornos no-dedicados permite el desarrollo de políticas de planificación más eficientes. Algunas de las aplicaciones intensivas de E/S se basan en el paradigma MapReduce donde los entornos que las utilizan, como Hadoop, se ocupan de la localidad de los datos, balanceo de carga de forma automática y trabajan con sistemas de archivos distribuidos. El rendimiento de Hadoop se puede mejorar sin aumentar los costos de hardware, al sintonizar varios parámetros de configuración claves para las especificaciones del cluster, para el tamaño de los datos de entrada y para el procesamiento complejo. La sincronización de estos parámetros de sincronización puede ser demasiado compleja para el usuario y/o administrador pero procura garantizar prestaciones más adecuadas. Este trabajo propone la evaluación del impacto de las aplicaciones intensivas de E/S en la planificación de trabajos en clusters no-dedicados bajo los paradigmas MPI y Mapreduce.Amb la major capacitat dels nodes de processament en relació a potència de còmput, cada vegada més aplicacions intensives de dades com les aplicacions de la bioinformàtica, es duran a executar en clusters no dedicats. Els clusters no dedicats es caracteritzen per la seva capacitat de combinar l'execució d'aplicacions d'usuaris locals amb aplicacions, científiques o comercials, executades en paral·lel. Saber quin efecte les aplicacions amb accés intensiu a daus produeixen respecte a la barreja d'un altre tipus (batch, interès, SRT, etc) en els entorns no-dedicats permet el desenvolupament de polítiques de planificació més eficient. Algunes de les aplicacions intensives d'E/S es basen en el paradigma MapReduce on els entorns que les utilitzen, com Hadoop, s'ocupen de la localitat de les dades, balanceig de càrrega de forma automàtica i treballen amb sistemes d'arxius distribuïts. L'exercici de Hadoop es pot millorar sense augmentar els costos de maquinari, en sintonitzar diversos paràmetres de configuració claus per a les especificacions del cluster, per la mida de les dades d'entrada i per al processament complex. La sincronització d'aquests paràmetres de sincronització pot ser massa complexa per a l'usuari i/o administrador però procura garantir prestacions més adequades. Aquest treball proposa l'avaluació de l'impacte de les aplicacions intensives d'E/S en la planificació de treballs en clusters no-dedicats sota els paradigmes MPI i MapReduce.With the increased capacity of processing nodes in relation to computing power, increasingly data-intensive applications such as applications of bioinformatics, will be run on non-dedicated clusters. The non-dedicated clusters are characterized by their ability to combine the implementation of local user applications with applications, scientific or commercial, executed in parallel. Learn what effect intensive applications to access given for mixed produce other (batch, interest, SRT, etc) in the non-dedicated environment allows the development of more efficient planning policies. Some intensive applications E/S are based on the MapReduce paradigm where environments that use them, such as Hadoop, dealing with data locality, load balancing automatically and work with distributed file systems. Hadoop's performance can be improved without increasing the costs of hardware, tune several key settings to the specifications of the cluster, for the size of the input data and complex processing. The timing of these timing parameters may be too complex for the user or administrator but seeks to ensure more adequate benefits. This master thesis proposes the evaluation of the impact of intensive applications E/S in planning work on non-dedicated clusters under the MPI, MapReduce paradigm

    Planificación de aplicaciones best-effort y soft real-time en NOWs

    Get PDF
    La aparición de nuevos tipos de aplicaciones, como vídeo bajo demanda, realidad virtual y videoconferencias entre otras, caracterizadas por la necesidad de cumplir sus deadlines. Este tipo de aplicaciones, han sido denominadas en la literatura aplicaciones soft-real time (SRT) periódicas. Este trabajo se centra en el problema de la planificación temporal de este nuevo tipo de aplicaciones en clusters no dedicados.L'aparició de nous tipus d'aplicacions, com vídeo sota demanda, realitat virtual i videoconferències entre unes altres, caracteritzades per la necessitat de complir les seves deadlines. Aquest tipus d'aplicacions, han estat denominades en la literatura aplicacions soft-real time (SRT) periòdiques. Aquest treball es centra en el problema de la planificació temporal d'aquest nou tipus d'aplicacions en clusters no dedicats
    corecore