9 research outputs found

    Experiences with Resource Provisioning for Scientific Workflows Using Corral

    Get PDF

    Performance Improvement of Multithreaded Java Applications Execution on Multiprocessor Systems

    Get PDF
    El disseny del llenguatge Java, que inclou aspectes importants com s贸n la seva portabilitat i neutralitat envers l'arquitectura, les seves capacitats multithreading, la seva familiaritat (degut a la seva semblan莽a amb C/C++), la seva robustesa, les seves capacitats en seguretat i la seva naturalesa distribu茂da, fan que sigui un llenguatge potencialment interessant per ser utilitzat en entorns paral路lels com s贸n els entorns de computaci贸 d'altes prestacions (HPC), on les aplicacions poden treure profit del suport que ofereix Java a l'execuci贸 multithreaded per realitzar c脿lculs en paral路lel, o en entorns e-business, on els servidors Java multithreaded (que segueixen l'especificaci贸 J2EE) poden treure profit de les capacitats multithreading de Java per atendre de manera concurrent un gran nombre de peticions.No obstant, l'煤s de Java per la programaci贸 paral路lela ha d'enfrontar-se a una s猫rie de problemes que f脿cilment poden neutralitzar el guany obtingut amb l'execuci贸 en paral路lel. El primer problema 茅s el gran overhead provocat pel suport de threads de la JVM quan s'utilitzen threads per executar feina de gra fi, quan es crea un gran nombre de threads per suportar l'execuci贸 d'una aplicaci贸 o quan els threads interaccionen estretament mitjan莽ant mecanismes de sincronitzaci贸. El segon problema 茅s la degradaci贸 en el rendiment produ茂da quan aquestes aplicacions multithreaded s'executen en sistemes paral路lels multiprogramats. La principal causa d'aquest problemes 茅s la manca de comunicaci贸 entre l'entorn d'execuci贸 i les aplicacions, la qual pot induir a les aplicacions a fer un 煤s descoordinat dels recursos disponibles.Aquesta tesi contribueix amb la definici贸 d'un entorn per analitzar i comprendre el comportament de les aplicacions Java multithreaded. La contribuci贸 principal d'aquest entorn 茅s que la informaci贸 de tots els nivells involucrats en l'execuci贸 (aplicaci贸, servidor d'aplicacions, JVM i sistema operatiu) est脿 correlada. Aquest fet 茅s molt important per entendre com aquest tipus d'aplicacions es comporten quan s'executen en entorns que inclouen servidors i m脿quines virtuals, donat que l'origen dels problemes de rendiment es pot trobar en qualsevol d'aquests nivells o en la seva interacci贸.Addicionalment, i basat en el coneixement adquirit mitjan莽ant l'entorn d'an脿lisis proposat, aquesta tesi contribueix amb mecanismes i pol铆tiques de planificaci贸 orientats cap a l'execuci贸 eficient d'aplicacions Java multithreaded en sistemes multiprocessador considerant les interaccions i la coordinaci贸 dels mecanismes i les pol铆tiques de planificaci贸 en els diferents nivells involucrats en l'execuci贸. La idea b脿sica consisteix en permetre la cooperaci贸 entre les aplicacions i l'entorn d'execuci贸 en la gesti贸 de recursos establint una comunicaci贸 bi-direccional entre les aplicacions i el sistema. Per una banda, les aplicacions demanen a l'entorn d'execuci贸 la quantitat de recursos que necessiten. Per altra banda, l'entorn d'execuci贸 pot ser inquirit en qualsevol moment per les aplicacions ser informades sobre la seva assignaci贸 de recursos. Aquesta tesi proposa que les aplicacions utilitzin la informaci贸 proporcionada per l'entorn d'execuci贸 per adaptar el seu comportament a la quantitat de recursos que tenen assignats (aplicacions auto-adaptables). Aquesta adaptaci贸 s'assoleix en aquesta tesi per entorns HPC per mitj脿 de la mal路leabilitat de les aplicacions, i per entorns e-business amb una proposta de control de congesti贸 que fa control d'admissi贸 basat en la diferenciaci贸 de connexions SSL per prevenir la degradaci贸 del rendiment i mantenir la Qualitat de Servei (QoS).Els resultats de l'avaluaci贸 demostren que subministrar recursos de manera din脿mica a les aplicacions auto-adaptables en funci贸 de la seva demanda millora el rendiment de les aplicacions Java multithreaded tant en entorns HPC com en entorns e-business. Mentre disposar d'aplicacions auto-adaptables evita la degradaci贸 del rendiment, el subministrament din脿mic de recursos permet satisfer els requeriments de les aplicacions en funci贸 de la seva demanda i adaptar-se a la variabilitat de les seves necessitats de recursos. D'aquesta manera s'aconsegueix una millor utilitzaci贸 dels recursos donat que els recursos que no utilitza una aplicaci贸 determinada poden ser distribu茂ts entre les altres aplicacions.The design of the Java language, which includes important aspects such as its portability and architecture neutrality, its multithreading facilities, its familiarity (due to its resemblance with C/C++), its robustness, its security capabilities and its distributed nature, makes it a potentially interesting language to be used in parallel environments such as high performance computing (HPC) environments, where applications can benefit from the Java multithreading support for performing parallel calculations, or e-business environments, where multithreaded Java application servers (i.e. following the J2EE specification) can take profit of Java multithreading facilities to handle concurrently a large number of requests.However, the use of Java for parallel programming has to face a number of problems that can easily offset the gain due to parallel execution. The first problem is the large overhead incurred by the threading support available in the JVM when threads are used to execute fine-grained work, when a large number of threads are created to support the execution of the application or when threads closely interact through synchronization mechanisms. The second problem is the performance degradation occurred when these multithreaded applications are executed in multiprogrammed parallel systems. The main issue that causes these problems is the lack of communication between the execution environment and the applications, which can cause these applications to make an uncoordinated use of the available resources.This thesis contributes with the definition of an environment to analyze and understand the behavior of multithreaded Java applications. The main contribution of this environment is that all levels in the execution (application, application server, JVM and operating system) are correlated. This is very important to understand how this kind of applications behaves when executed on environments that include servers and virtual machines, because the origin of performance problems can reside in any of these levels or in their interaction.In addition, and based on the understanding gathered using the proposed analysis environment, this thesis contributes with scheduling mechanisms and policies oriented towards the efficient execution of multithreaded Java applications on multiprocessor systems considering the interactions and coordination between scheduling mechanisms and policies at the different levels involved in the execution. The basis idea consists of allowing the cooperation between the applications and the execution environment in the resource management by establishing a bi-directional communication path between the applications and the underlying system. On one side, the applications request to the execution environment the amount of resources they need. On the other side, the execution environment can be requested at any time by the applications to inform them about their resource assignments. This thesis proposes that applications use the information provided by the execution environment to adapt their behavior to the amount of resources allocated to them (self-adaptive applications). This adaptation is accomplished in this thesis for HPC environments through the malleability of the applications, and for e-business environments with an overload control approach that performs admission control based on SSL connections differentiation for preventing throughput degradation and maintaining Quality of Service (QoS).The evaluation results demonstrate that providing resources dynamically to self-adaptive applications on demand improves the performance of multithreaded Java applications as in HPC environments as in e-business environments. While having self-adaptive applications avoids performance degradation, dynamic provision of resources allows meeting the requirements of the applications on demand and adapting to their changing resource needs. In this way, better resource utilization is achieved because the resources not used by some application may be distributed among other applications

    Design and evaluation of a Thread-Level Speculation runtime library

    Get PDF
    En los pr贸ximos a帽os es m谩s que probable que m谩quinas con cientos o incluso miles de procesadores sean algo habitual. Para aprovechar estas m谩quinas, y debido a la dificultad de programar de forma paralela, ser铆a deseable disponer de sistemas de compilaci贸n o ejecuci贸n que extraigan todo el paralelismo posible de las aplicaciones existentes. As铆 en los 煤ltimos tiempos se han propuesto multitud de t茅cnicas paralelas. Sin embargo, la mayor铆a de ellas se centran en c贸digos simples, es decir, sin dependencias entre sus instrucciones. La paralelizaci贸n especulativa surge como una soluci贸n para estos c贸digos complejos, posibilitando la ejecuci贸n de cualquier tipo de c贸digos, con o sin dependencias. Esta t茅cnica asume de forma optimista que la ejecuci贸n paralela de cualquier tipo de c贸digo no de lugar a errores y, por lo tanto, necesitan de un mecanismo que detecte cualquier tipo de colisi贸n. Para ello, constan de un monitor responsable que comprueba constantemente que la ejecuci贸n no sea err贸nea, asegurando que los resultados obtenidos de forma paralela sean similares a los de cualquier ejecuci贸n secuencial. En caso de que la ejecuci贸n fuese err贸nea los threads se detendr铆an y reiniciar铆an su ejecuci贸n para asegurar que la ejecuci贸n sigue la sem谩ntica secuencial. Nuestra contribuci贸n en este campo incluye (1) una nueva librer铆a de ejecuci贸n especulativa f谩cil de utilizar; (2) nuevas propuestas que permiten reducir de forma significativa el n煤mero de accesos requeridos en las peraciones especulativas, as铆 como consejos para reducir la memoria a utilizar; (3) propuestas para mejorar los m茅todos de scheduling centradas en la gesti贸n din谩mica de los bloques de iteraciones utilizados en las ejecuciones especulativas; (4) una soluci贸n h铆brida que utiliza memoria transaccional para implementar las secciones cr铆ticas de una librer铆a de paralelizaci贸n especulativa; y (5) un an谩lisis de las t茅cnicas especulativas en uno de los dispositivos m谩s vanguardistas del momento, los coprocesadores Intel Xeon Phi. Como hemos podido comprobar, la paralelizaci贸n especulativa es un campo de investigaci贸n activo. Nuestros resultados demuestran que esta t茅cnica permite obtener mejoras de rendimiento en un gran n煤mero de aplicaciones. As铆, esperamos que este trabajo contribuya a facilitar el uso de soluciones especulativas en compiladores comerciales y/o modelos de programaci贸n paralela de memoria compartida.Departamento de Inform谩tica (Arquitectura y Tecnolog铆a de Computadores, Ciencias de la Computaci贸n e Inteligencia Artificial, Lenguajes y Sistemas Inform谩ticos

    System support for client-server based interactive applications in ad hoc networks

    Get PDF
    With the emergence of wireless communications and mobile computing. new ways for people to interact with each other and their surrounding environment are emerging. Mobile devices, such as Personal Digital Assistants (PDAs) with wireless communication interfaces are able to communicate directly with each other if they are "close enough". If such devices are also able to act as message relays (routers), then a very powerful facility in the form of a mobile ad hoc network can be made available to applications. Although present day PDAs have sufficient networking and processing capabilities to support interesting interactive applications, as yet, there is hardly any software available for constructing and maintaining ad hoc networks and not many practical interactive applications have been built and tested. Rather, much of the research work is still at simulation and modelling stage. Thus it is difficult at this stage to decide what system support (middleware) for interactive applications a PDA should contain. This work is a step in the direction of remedying the situation by considering a class of applications where interactions between users can be supported by one of the nodes in the ad hoc network acting as a server. The thesis presents the design, implementation and evaluation of three such applications on PDAs, and based on that experience, describes what system support (middleware) for such applications is required. These applications are: Auction, Bingo game and Chatting that work over ad hoc networks. The work presented here can be used as a basis for deciding how the current generation of PDA operating systems can be extended for supporting ad hoc networking and what additional services are required for interactive applications.EThOS - Electronic Theses Online ServiceGBUnited Kingdo

    Scalable Algorithms for the Analysis of Massive Networks

    Get PDF
    Die Netzwerkanalyse zielt darauf ab, nicht-triviale Erkenntnisse aus vernetzten Daten zu gewinnen. Beispiele f眉r diese Erkenntnisse sind die Wichtigkeit einer Entit盲t im Verh盲ltnis zu anderen nach bestimmten Kriterien oder das Finden des am besten geeigneten Partners f眉r jeden Teilnehmer eines Netzwerks - bekannt als Maximum Weighted Matching (MWM). Da der Begriff der Wichtigkeit an die zu betrachtende Anwendung gebunden ist, wurden zahlreiche Zentralit盲tsma脽e eingef眉hrt. Diese Ma脽e stammen hierbei aus Jahrzehnten, in denen die Rechenleistung sehr begrenzt war und die Netzwerke im Vergleich zu heute viel kleiner waren. Heute sind massive Netzwerke mit Millionen von Kanten allgegenw盲rtig und eine triviale Berechnung von Zentralit盲tsma脽en ist oft zu zeitaufw盲ndig. Dar眉ber hinaus ist die Suche nach der Gruppe von k Knoten mit hoher Zentralit盲t eine noch kostspieligere Aufgabe. Skalierbare Algorithmen zur Identifizierung hochzentraler (Gruppen von) Knoten in gro脽en Graphen sind von gro脽er Bedeutung f眉r eine umfassende Netzwerkanalyse. Heutigen Netzwerke ver盲ndern sich zus盲tzlich im zeitlichen Verlauf und die effiziente Aktualisierung der Ergebnisse nach einer 脛nderung ist eine Herausforderung. Effiziente dynamische Algorithmen sind daher ein weiterer wesentlicher Bestandteil moderner Analyse-Pipelines. Hauptziel dieser Arbeit ist es, skalierbare algorithmische L枚sungen f眉r die zwei oben genannten Probleme zu finden. Die meisten unserer Algorithmen ben枚tigen Sekunden bis einige Minuten, um diese Aufgaben in realen Netzwerken mit bis zu Hunderten Millionen von Kanten zu l枚sen, was eine deutliche Verbesserung gegen眉ber dem Stand der Technik darstellt. Au脽erdem erweitern wir einen modernen Algorithmus f眉r MWM auf dynamische Graphen. Experimente zeigen, dass unser dynamischer MWM-Algorithmus Aktualisierungen in Graphen mit Milliarden von Kanten in Millisekunden bew盲ltigt.Network analysis aims to unveil non-trivial insights from networked data by studying relationship patterns between the entities of a network. Among these insights, a popular one is to quantify the importance of an entity with respect to the others according to some criteria. Another one is to find the most suitable matching partner for each participant of a network knowing the pairwise preferences of the participants to be matched with each other - known as Maximum Weighted Matching (MWM). Since the notion of importance is tied to the application under consideration, numerous centrality measures have been introduced. Many of these measures, however, were conceived in a time when computing power was very limited and networks were much smaller compared to today's, and thus scalability to large datasets was not considered. Today, massive networks with millions of edges are ubiquitous, and a complete exact computation for traditional centrality measures are often too time-consuming. This issue is amplified if our objective is to find the group of k vertices that is the most central as a group. Scalable algorithms to identify highly central (groups of) vertices on massive graphs are thus of pivotal importance for large-scale network analysis. In addition to their size, today's networks often evolve over time, which poses the challenge of efficiently updating results after a change occurs. Hence, efficient dynamic algorithms are essential for modern network analysis pipelines. In this work, we propose scalable algorithms for identifying important vertices in a network, and for efficiently updating them in evolving networks. In real-world graphs with hundreds of millions of edges, most of our algorithms require seconds to a few minutes to perform these tasks. Further, we extend a state-of-the-art algorithm for MWM to dynamic graphs. Experiments show that our dynamic MWM algorithm handles updates in graphs with billion edges in milliseconds

    Clustering algorithms for sensor networks and mobile ad hoc networks to improve energy efficiency

    Get PDF
    Includes bibliographical references (leaves 161-172).Many clustering algorithms have been proposed to improve energy efficiency of ad hoc networks as this is one primary challenge in ad hoc networks. The design of these clustering algorithms in sensor networks is different from that in mobile ad hoc networks in accordance with their specific characteristics and application purposes. A typical sensor network, which consists of stationary sensor nodes, usually has a data sink because of the limitation on processing capability of sensor nodes. The data traffic of the entire network is directional towards the sink. This directional traffic burdens the nodes/clusters differently according to their distance to the sink. Most clustering algorithms assign a similar number of nodes to each cluster to balance the burden of the clusters without considering the directional data traffic. They thus fail to maximize network lifetime. This dissertation proposes two clustering algorithms. These consider the directional data traffic in order to improve energy efficiency of homogeneous sensor networks with identical sensor nodes and uniform node distribution. One algorithm is for sensor networks with low to medium node density. The other is for sensor networks with high node density. Both algorithms organize the clusters in such a way that the cluster load is proportional to the cluster energy stored, thereby equalizing cluster lifetimes and preventing premature node/cluster death. Furthermore, in a homogeneous sensor network with low to medium node density, the clusterhead is maintained in the central area of the cluster through re-clustering without ripple effect to save more energy. The simulation results show that the proposed algorithms improve both the lifetime of the networks and performance of data being delivered to the sink. A typical mobile ad hoc network, which usually consists of moveable nodes, does not have a data sink. Existing energy-efficient clustering algorithms maintain clusters by periodically broadcasting control messages. In a typical mobile ad hoc network, a greater speed of node usually needs more frequent broadcasting. To efficiently maintain the clusters, the frequency of this periodic broadcasting needs to meet the requirement of the potentially maximum speed of node. When the node speed is low, the unnecessary broadcasting may waste significant energy. Furthermore, some clustering algorithms limit the maximum cluster size to moderate the difference in cluster sizes. Unfortunately, the cluster sizes in these algorithms still experience significant difference. The larger clusters will have higher burdens. Some clustering algorithms restrict the cluster sizes between the maximum and minimum limits. The energy required to maintain these clusters within the maximum and minimum sizes is quite extensive, especially when the nodes are moving quickly. Thus, energy efficiency is not optimized

    Mobile Ad-Hoc Networks

    Get PDF
    Being infrastructure-less and without central administration control, wireless ad-hoc networking is playing a more and more important role in extending the coverage of traditional wireless infrastructure (cellular networks, wireless LAN, etc). This book includes state-of the-art techniques and solutions for wireless ad-hoc networks. It focuses on the following topics in ad-hoc networks: vehicular ad-hoc networks, security and caching, TCP in ad-hoc networks and emerging applications. It is targeted to provide network engineers and researchers with design guidelines for large scale wireless ad hoc networks
    corecore