10 research outputs found
Proceedings of the 4th International Conference on Principles and Practices of Programming in Java
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
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
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
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
Recommended from our members
The Semantics of Multicopy Atomic ARMv8 and RISC-V
Previous work has established precise operational concurrency models
for Power and ARMv8, in an abstract micro-architectural style based on
detailed discussion with IBM and ARM staff and extensive hardware
testing. To account for the precise architectural behaviour these
models are complex. This thesis aims to provide a better understanding
for the relaxed memory concurrency models of the architectures ARMv8,
RISC-V, and (to a lesser degree) Power.
Power and early versions of ARMv8 have non-multicopy-atomic (non-MCA)
concurrency models. This thesis provides abstraction results for
these, including a more abstract non-MCA ARMv8 storage subsystem
model, and characterisations of the behaviour of mixed-size Power and
non-MCA ARMv8 programs when using barriers or release/acquire
instructions for all memory accesses, with respect to notions of
Sequential Consistency for mixed-size programs.
During the course of this PhD project, and partly due to our extended
collaboration with ARM, ARM have shifted to a much simplified
multicopy-atomic concurrency architecture that also includes a formal
axiomatic concurrency model. We develop a correspondingly simplified
operational model based on the previous non-MCA models, and, as the
main result of this thesis, prove equivalence between the simplified
operational and the reference axiomatic model.
We have also been actively involved in the RISC-V Memory Model Task
Group. RISC-V has adopted a multicopy atomic model closely following
that of ARMv8, but which incorporates some changes motivated by issues
raised in our operational modelling of ARMv8. We develop an adapted
RISC-V operational concurrency model that is now part of the official
architecture documentation.
Finally, in order to give a simpler explanation of the MCA ARMv8 and
RISC-V concurrency models for programmers, we develop an equivalent
operational concurrency model in a different style. The
\promisingarmriscv model, based on the C11 Promising model, gives up
the micro-architectural intuition the other operational models offer
in favour of providing a more abstract model. We prove it equivalent
to the MCA ARMv8 and RISC-V axiomatic models in Coq.This work was funded by a Computer Laboratory and Qualcomm Premium Studentship, an EPSRC and Arm Ltd. Industrial CASE Studentship (grant no. EP/L505389/1), and the EPSRC Programme Grant âREMS: Rigorous Engineering for Mainstream Systemsâ (grant no. EP/K008528/1)
Vers une programmation locale et distribuée unifiée au travers de l'utilisation de conteneurs actifs et de références asynchrones.
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#
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
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)