10 research outputs found

    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

    Third International Symposium on Space Mission Operations and Ground Data Systems, part 2

    Get PDF
    Under the theme of 'Opportunities in Ground Data Systems for High Efficiency Operations of Space Missions,' the SpaceOps '94 symposium included presentations of more than 150 technical papers spanning five topic areas: Mission Management, Operations, Data Management, System Development, and Systems Engineering. The symposium papers focus on improvements in the efficiency, effectiveness, and quality of data acquisition, ground systems, and mission operations. New technology, methods, and human systems are discussed. Accomplishments are also reported in the application of information systems to improve data retrieval, reporting, and archiving; the management of human factors; the use of telescience and teleoperations; and the design and implementation of logistics support for mission operations. This volume covers expert systems, systems development tools and approaches, and systems engineering issues

    Applications Development for the Computational Grid

    Get PDF

    European Information Technology Observatory 1998

    Get PDF
    corecore