10 research outputs found

    Grid’BnB: A Parallel Branch and Bound Framework for Grids

    Full text link

    Proceedings of the 4th International Conference on Principles and Practices of Programming in Java

    Full text link
    This book contains the proceedings of the 4th international conference on principles and practices of programming in Java. The conference focuses on the different aspects of the Java programming language and its applications

    Analyse von IT-Anwendungen mittels Zeitvariation

    Get PDF
    Performanzprobleme treten in der Praxis von IT-Anwendungen hĂ€ufig auf, trotz steigender Hardwareleistung und verschiedenster AnsĂ€tze zur Entwicklung performanter Software im Softwarelebenszyklus. Modellbasierte Performanzanalysen ermöglichen auf Basis von Entwurfsartefakten eine PrĂ€vention von Performanzproblemen. Bei bestehenden oder teilweise implementierten IT-Anwendungen wird versucht, durch Hardwareskalierung oder Optimierung des Codes Performanzprobleme zu beheben. Beide AnsĂ€tze haben Nachteile: modellbasierte AnsĂ€tze werden durch die benötigte hohe Expertise nicht generell genutzt, die nachtrĂ€gliche Optimierung ist ein unsystematischer und unkoordinierter Prozess. Diese Dissertation schlĂ€gt einen neuen Ansatz zur Performanzanalyse fĂŒr eine nachfolgende Optimierung vor. Mittels eines Experiments werden Performanzwechselwirkungen in der IT-Anwendung identifiziert. Basis des Experiments, das Analyseinstrumentarium, ist eine zielgerichtete, zeitliche Variation von Start-, Endzeitpunkt oder Laufzeitdauer von AblĂ€ufen der IT-Anwendung. Diese Herangehensweise ist automatisierbar und kann strukturiert und ohne hohen Lernaufwand im Softwareentwicklungsprozess angewandt werden. Mittels der Turingmaschine wird bewiesen, dass durch die zeitliche Variation des Analyseinstrumentariums die Korrektheit von sequentiellen Berechnung beibehalten wird. Dies wird auf nebenlĂ€ufige Systeme mittels der parallelen Registermaschine erweitert und diskutiert. Mit diesem praxisnahen Maschinenmodell wird dargelegt, dass die entdeckten WirkzusammenhĂ€nge des Analyseinstrumentariums Optimierungskandidaten identifizieren. Eine spezielle Experimentierumgebung, in der die AblĂ€ufe eines Systems, bestehend aus Software und Hardware, programmierbar variiert werden können, wird mittels einer Virtualisierungslösung realisiert. Techniken zur Nutzung des Analyseinstrumentariums durch eine Instrumentierung werden angegeben. Eine Methode zur Ermittlung von Mindestanforderungen von IT-Anwendungen an die Hardware wird prĂ€sentiert und mittels der Experimentierumgebung anhand von zwei Szenarios und dem Android Betriebssystem exemplifiziert. Verschiedene Verfahren, um aus den Beobachtungen des Experiments die Optimierungskandidaten des Systems zu eruieren, werden vorgestellt, klassifiziert und evaluiert. Die Identifikation von Optimierungskandidaten und -potenzial wird an Illustrationsszenarios und mehreren großen IT-Anwendungen mittels dieser Methoden praktisch demonstriert. Als konsequente Erweiterung wird auf Basis des Analyseinstrumentariums eine Testmethode zum Validieren eines Systems gegenĂŒber nicht deterministisch reproduzierbaren Fehlern, die auf Grund mangelnder Synchronisationsmechanismen (z.B. Races) oder zeitlicher AblĂ€ufe entstehen (z.B. Heisenbugs, alterungsbedingte Fehler), angegeben.Performance problems are very common in IT-Application, even though hardware performance is consistently increasing and there are several different software performance engineering methodologies during the software life cycle. The early model based performance predictions are offering a prevention of performance problems based on software engineering artifacts. Existing or partially implemented IT-Applications are optimized with hardware scaling or code tuning. There are disadvantages with both approaches: the model based performance predictions are not generally used due to the needed high expertise, the ex post optimization is an unsystematic and unstructured process. This thesis proposes a novel approach to a performance analysis for a subsequent optimization of the IT-Application. Via an experiment in the IT-Application performance interdependencies are identified. The core of the analysis is a specific variation of start-, end time or runtime of events or processes in the IT-Application. This approach is automatic and can easily be used in a structured way in the software development process. With a Turingmachine the correctness of this experimental approach was proved. With these temporal variations the correctness of a sequential calculation is held. This is extended and discussed on concurrent systems with a parallel Registermachine. With this very practical machine model the effect of the experiment and the subsequent identification of optimization potential and candidates are demonstrated. A special experimental environment to vary temporal processes and events of the hardware and the software of a system was developed with a virtual machine. Techniques for this experimental approach via instrumenting are stated. A method to determine minimum hardware requirements with this experimental approach is presented and exemplified with two scenarios based on the Android Framework. Different techniques to determine candidates and potential for an optimization are presented, classified and evaluated. The process to analyze and identify optimization candidates and potential is demonstrated on scenarios for illustration purposes and real IT-Applications. As a consistent extension a test methodology enabling a test of non-deterministic reproducible errors is given. Such non-deterministic reproducible errors are faults in the system caused by insufficient synchronization mechanisms (for example Races or Heisenbugs) or aging-related faults

    Pattern Operators for Grid Environments

    Get PDF
    The definition and programming of distributed applications has become a major research issue due to the increasing availability of (large scale) distributed platforms and the requirements posed by the economical globalization. However, such a task requires a huge effort due to the complexity of the distributed environments: large amount of users may communicate and share information across different authority domains; moreover, the “execution environment” or “computations” are dynamic since the number of users and the computational infrastructure change in time. Grid environments, in particular, promise to be an answer to deal with such complexity, by providing high performance execution support to large amount of users, and resource sharing across different organizations. Nevertheless, programming in Grid environments is still a difficult task. There is a lack of high level programming paradigms and support tools that may guide the application developer and allow reusability of state-of-the-art solutions. Specifically, the main goal of the work presented in this thesis is to contribute to the simplification of the development cycle of applications for Grid environments by bringing structure and flexibility to three stages of that cycle through a commonmodel. The stages are: the design phase, the execution phase, and the reconfiguration phase. The common model is based on the manipulation of patterns through pattern operators, and the division of both patterns and operators into two categories, namely structural and behavioural. Moreover, both structural and behavioural patterns are first class entities at each of the aforesaid stages. At the design phase, patterns can be manipulated like other first class entities such as components. This allows a more structured way to build applications by reusing and composing state-of-the-art patterns. At the execution phase, patterns are units of execution control: it is possible, for example, to start or stop and to resume the execution of a pattern as a single entity. At the reconfiguration phase, patterns can also be manipulated as single entities with the additional advantage that it is possible to perform a structural reconfiguration while keeping some of the behavioural constraints, and vice-versa. For example, it is possible to replace a behavioural pattern, which was applied to some structural pattern, with another behavioural pattern. In this thesis, besides the proposal of the methodology for distributed application development, as sketched above, a definition of a relevant set of pattern operators was made. The methodology and the expressivity of the pattern operators were assessed through the development of several representative distributed applications. To support this validation, a prototype was designed and implemented, encompassing some relevant patterns and a significant part of the patterns operators defined. This prototype was based in the Triana environment; Triana supports the development and deployment of distributed applications in the Grid through a dataflow-based programming model. Additionally, this thesis also presents the analysis of a mapping of some operators for execution control onto the Distributed Resource Management Application API (DRMAA). This assessment confirmed the suitability of the proposed model, as well as the generality and flexibility of the defined pattern operatorsDepartamento de InformĂĄtica and Faculdade de CiĂȘncias e Tecnologia of the Universidade Nova de Lisboa; Centro de InformĂĄtica e Tecnologias da Informação of the FCT/UNL; Reitoria da Universidade Nova de Lisboa; Distributed Collaborative Computing Group, Cardiff University, United Kingdom; Fundação para a CiĂȘncia e Tecnologia; Instituto de Cooperação CientĂ­fica e TecnolĂłgica Internacional; French Embassy in Portugal; European Union Commission through the Agentcities.NET and Coordina projects; and the European Science Foundation, EURESCO

    Pattern operators for grid

    Get PDF
    The definition and programming of distributed applications has become a major research issue due to the increasing availability of (large scale) distributed platforms and the requirements posed by the economical globalization. However, such a task requires a huge effort due to the complexity of the distributed environments: large amount of users may communicate and share information across different authority domains; moreover, the “execution environment” or “computations” are dynamic since the number of users and the computational infrastructure change in time. Grid environments, in particular, promise to be an answer to deal with such complexity, by providing high performance execution support to large amount of users, and resource sharing across different organizations. Nevertheless, programming in Grid environments is still a difficult task. There is a lack of high level programming paradigms and support tools that may guide the application developer and allow reusability of state-of-the-art solutions. Specifically, the main goal of the work presented in this thesis is to contribute to the simplification of the development cycle of applications for Grid environments by bringing structure and flexibility to three stages of that cycle through a commonmodel. The stages are: the design phase, the execution phase, and the reconfiguration phase. The common model is based on the manipulation of patterns through pattern operators, and the division of both patterns and operators into two categories, namely structural and behavioural. Moreover, both structural and behavioural patterns are first class entities at each of the aforesaid stages. At the design phase, patterns can be manipulated like other first class entities such as components. This allows a more structured way to build applications by reusing and composing state-of-the-art patterns. At the execution phase, patterns are units of execution control: it is possible, for example, to start or stop and to resume the execution of a pattern as a single entity. At the reconfiguration phase, patterns can also be manipulated as single entities with the additional advantage that it is possible to perform a structural reconfiguration while keeping some of the behavioural constraints, and vice-versa. For example, it is possible to replace a behavioural pattern, which was applied to some structural pattern, with another behavioural pattern. In this thesis, besides the proposal of the methodology for distributed application development, as sketched above, a definition of a relevant set of pattern operators was made. The methodology and the expressivity of the pattern operators were assessed through the development of several representative distributed applications. To support this validation, a prototype was designed and implemented, encompassing some relevant patterns and a significant part of the patterns operators defined. This prototype was based in the Triana environment; Triana supports the development and deployment of distributed applications in the Grid through a dataflow-based programming model. Additionally, this thesis also presents the analysis of a mapping of some operators for execution control onto the Distributed Resource Management Application API (DRMAA). This assessment confirmed the suitability of the proposed model, as well as the generality and flexibility of the defined pattern operatorsDepartamento de InformĂĄtica and Faculdade de CiĂȘncias e Tecnologia of the Universidade Nova de Lisboa; Centro de InformĂĄtica e Tecnologias da Informação of the FCT/UNL; Reitoria da Universidade Nova de Lisboa; Distributed Collaborative Computing Group, Cardiff University, United Kingdom; Fundação para a CiĂȘncia e Tecnologia; Instituto de Cooperação CientĂ­fica e TecnolĂłgica Internacional; French Embassy in Portugal; European Union Commission through the Agentcities.NET and Coordina projects; and the European Science Foundation, EURESCO

    Vers une programmation locale et distribuée unifiée au travers de l'utilisation de conteneurs actifs et de références asynchrones.

    Get PDF
    Dans le domaine des systĂšmes distribuĂ©s, la notion de mobilitĂ© du code est Ă  l’origine de nombreux travaux visant Ă  amĂ©liorer les performances des applications parallĂšles (processus lĂ©gers mobiles), Ă  faciliter le dĂ©veloppement d’applications (agents mobiles) ou Ă  garantir la sĂ©curitĂ© (cartes Ă  puces). Dans ce contexte, nous montrons que les systĂšmes d’agents mobiles ont peu Ă  peu disparu au profit de plates-formes d’exĂ©cution asynchrones. Nous prĂ©sentons une nouvelle abstraction – appellĂ©e conteneur actif – qui est issue d’une modĂ©lisation en π-calcul d’un systĂšme d’agents mobiles, et qui semble ĂȘtre une brique de base avec laquelle les applications distribuĂ©es peuvent ĂȘtre conçues. Le dĂ©veloppement d’une implĂ©mentation de cette abstraction en Java a fait apparaĂźtre un problĂšme liĂ© Ă  la gestion de la concurrence dans les applications, distribuĂ©es ou non. Nous dĂ©crivons donc la notion de rĂ©fĂ©rence asynchrone – notre solution Ă  ce problĂšme – qui permet d’exprimer simplement la concurrence d’exĂ©cution dans une application. Notre implĂ©mentation en Java de ce concept facilite le dĂ©veloppement des applications multithread Ă©es et parallĂšles, en Ă©vitant le recours problĂ©matique aux threads par l’utilisation exclusive d’un unique paradigme : l’appel de mĂ©thode. Ce dernier peut se dĂ©cliner en de multiples versions : synchrone, asynchrone, local ou distant. L’ensemble de nos travaux est disponible sous licence libre LGPL au sein d’une plateforme opĂ©rationnelle et documentĂ©e appellĂ©e Mandala qui est briĂšvement dĂ©crite.In the domain of distributed systems, several projects focus on mobile code in order to enhance the performance of parallel applications (mobile threads), to make easier the development of applications (mobile agents) or to guarantee security (smart cards). In this context, we show how mobile agent systems have basically disappeared in favor of asynchronous execution frameworks. We present a new abstraction – called active container – originating from a model of a mobile agents system. It seems to be a base layer on top of which distributed applications can be developped. A Java implementation of this abstraction raises a problem related to the management of concurrency in applications, distributed or not. We describe the notion of asynchronous reference – our solution to this problem – which allows to express concurrency quite easily. Our Java implementation of this concept eases the development of multithreaded and parallel applications avoiding the problematic use of threads by the exclusive use of a single paradigm: method invocation. This can be: synchronous, asynchronous, local or remote. Our work is available as an open-source LGPL licence package within a ready to use and documented framework called Mandala which is briefly described

    McMPI – a managed-code message passing interface library for high performance communication in C#

    Get PDF
    This work endeavours to achieve technology transfer between established best-practice in academic high-performance computing and current techniques in commercial high-productivity computing. It shows that a credible high-performance message-passing communication library, with semantics and syntax following the Message-Passing Interface (MPI) Standard, can be built in pure C# (one of the .Net suite of computer languages). Message-passing has been the dominant paradigm in high-performance parallel programming of distributed-memory computer architectures for three decades. The MPI Standard originally distilled architecture-independent and language-agnostic ideas from existing specialised communication libraries and has since been enhanced and extended. Object-oriented languages can increase programmer productivity, for example by allowing complexity to be managed through encapsulation. Both the C# computer language and the .Net common language runtime (CLR) were originally developed by Microsoft Corporation but have since been standardised by the European Computer Manufacturers Association (ECMA) and the International Standards Organisation (ISO), which facilitates portability of source-code and compiled binary programs to a variety of operating systems and hardware. Combining these two open and mature technologies enables mainstream programmers to write tightly-coupled parallel programs in a popular standardised object-oriented language that is portable to most modern operating systems and hardware architectures. This work also establishes that a thread-to-thread delivery option increases shared-memory communication performance between MPI ranks on the same node. This suggests that the thread-as-rank threading model should be explicitly specified in future versions of the MPI Standard and then added to existing MPI libraries for use by thread-safe parallel codes. This work also ascertains that the C# socket object suffers from undesirable characteristics that are critical to communication performance and proposes ways of improving the implementation of this object

    Housing quality and lost (public) space in Croatia

    Get PDF
    IN ENGLISH: In the post-socialist period and within the current social transition context, urban and rural Croatia has, just like other transition countries, experienced many changes in the social structure and space. One example is the housing quality which is a replica of the situation in the Croatian society and has also undergone some major changes. Socially oriented housing construction co-financed by the state and the cities is in an unfavourable position compared to private housing construction. In the last twenty years the amount of the social housing construction has been only a minor part of the total contruction work in the country. For instance, out of nine newly planned residential housing developments in Zagreb, the capital city, only three have been completed and the work on the rest of them has stopped and is unlikely to continue. Private construction work prevails especially on the edge of the city and is characterised by high density housing. This type of housing construction doesn't benefit the majority of citizens in search of accommodation (price per square meter is too high, low-quality building). There is also a big problem of the community facilities (primary and secondary infrastructure, schools, kindergartens, playgrounds, green areas, sidewalks, public transport etc.). The existing globalisation-transition circumstances of the Croatian society corroborate the fact which experts of various profiles often point out: ignoring the process of (urban) planning will irreparably damage the space. The city transformation shows the absence of comprehensive urban planning which results in an ever increasing number of random buildings which do not fit in the surroundings. This leads up to yet another important issue – the shrinking and, in some cases, disappearance of public space which becomes the “lost space“. In recent years there has been a lot of building in the city core and on the edge which does not quite fit in the existing urban structure, image or the skyline of the city. The current situation in the process of planning can be characterized as a conflict and imbalance between the powerful actors (mostly political and economic) and less powerful actors (mostly professional and civil). The actors who have the political power and influence and the ones who possess the capital are forming an “alliance” between two important layers of the social structure. The lack of civil and professional actors, “lost spatial actors”, and therefore of civic aggregation is also present and that is also the cause of public space “disappearance” and undermined process of public participation. --------------- IN CROATIAN: U postsocijalističkom razdoblju i trenutnom tranzicijskom kontekstu urbana i ruralna Hrvatska su, kao i ostale tranzicijske zemlje, doĆŸivjele mnoge promjene u druĆĄtvenoj strukturi i samom prostoru. Na primjeru kvalitete stanovanja kao replike stanja u hrvatskom druĆĄtvu mogu se vidjeti značajne promjene. DruĆĄtveno usmjerena stambena izgradnja sufinancirana od strane drĆŸave i gradova je stoga rjeđa i u nepovoljnijoj je situaciji prema privatnoj stanogradnji. Zadnjih dvadeset godina udjel socijalne stambene gradnje je zanemariv u ukupnoj izgradnji na razini zemlje. Primjerice, od devet planiranih stambenih naselja izgrađenih po modelu POS-a u Zagrebu samo su tri i zavrĆĄena. Na ostalima je proces gradnje zastao i ne čini se da će se privesti kraju. Privatna je gradnje prisutnija, posebno na rubovima grada, a obiljeĆŸava je visoka gustoća gradnje. Ovakav tip gradnje ne odgovara većini stanovnika koji su u procesu potraĆŸnje stambene nekretnine (visoka cijena kvadratnog metra, a slaba kvaliteta gradnje). Postoji također i problem nedostatne opremljenosti susjedstva (primarna i sekundarna infrastruktura, ĆĄkole, vrtići, igraliĆĄta, zelene povrĆĄine, pjeĆĄačke staze, javni transport itd.). Navedene globalizacijsko-tranzicijske okolnosti hrvatskog druĆĄtva potvrđuju ono ĆĄto eksperti različitih profila ističu, a to je da će ignoriranje procesa (urbanog) planiranja nepovratno uniĆĄtiti prostor gradova. Ovakve transformacije pokazuju nedostatak sustavnog urbanog planiranja ĆĄto rezultira sve većim brojem zgrada koje se ne uklapaju u neposrednu okolinu. To nadalje dovodi do drugog vaĆŸnog aspekta – smanjivanja i u nekim slučajevima, nestanka javnog prostora koji postaje „izgubljeni prostor“. Posljednjih je godina izgrađen velik broj zgrada, i u srediĆĄtu i na rubovima grada, koje se ne uklapaju u postojeću urbanu strukturu, izgled ili vizuru grada. Ovakvu situaciju obiljeĆŸavaju sukob i neravnoteĆŸa između moćnijih druĆĄtvenih aktera (većinom političkih i ekonomskih) i onih manje moćnih (većinom profesionalnih i civilnih). Politički i ekonomski akteri se često povezuju u „savez“ dvaju najjačih u druĆĄtvenoj strukturi. S druge strane nedostatak utjecaja civilnih i profesionalnih aktera kao „izgubljenih prostornih aktera“ dovodi do „nestanka“ javnih prostora te smanjenja vaĆŸnosti procesa participacije (sudjelovanja javnosti)
    corecore