-
In modern times, innovation often requires performing complex computations in a short amount of time. However, for many small organisations and freelance innovators, large-scale computations remain beyond reach because of the small accessibility of computation resources and the lack of knowledge required to use them efficiently. The BalticLSC Platform is a software development and computing environment created to address this issue. This paper presents the associated software development process. The platform users can perform advanced computations using ready applications or develop new applications quickly from available components. This can be done using a visual notation called the Computation Application Language (CAL). CAL programs are developed in a dedicated online editor, through selecting and connecting reusable computation modules. If a required module is missing, it can be quickly created by encapsulating code inside a standardised container. The platform's ultimate goal is to relieve the developers from the need to understand the complexity of the distributed parallel computation environment. The platform was implemented in the form of an online software development portal. Validation of the platform consisted in the development of applications and modules by students not experienced in programming. The results of this validation acknowledge the required platform's characteristics.
Article details → -
Fast and precise build and deployment automation is a fundamental task for every project oriented on rapidly appearing changes. As a rule of thumb, the tools used for this task work as procedural-declarative frameworks – often overlooking the extra requirements for large projects like easy parallelization, precise targeting of specific subsystem or general code readability. In this article we document our findings in build automation as we have abandoned the procedural-declarative approach to object-oriented perspective of our setup environment – all implemented in the .NET build automation framework Cake Frosting. Due to the clear separation of the various layers of our system and our codebase we are able to fire up our new build-deployment routines at ease and at specific part of our ecosystem. As the whole routine is written as a C# console application we can easily manage some aspects of parallel execution (i.e. number of threads) of some tasks which results in great drop of job execution time. To further improve the execution time, we introduce the concept of proof-of-work which is a file that stores the information about the last successful build. Together, all of our concepts resulted in a fast build-deployment routine – as in pessimistic scenario we managed to drop to about 30
Article details → -
The requirements specification phase is one of the most important during software development. In many cases, its outcome takes a form of a use-case model, which consists of use-case diagrams and supplementary use-case specifications. The requirements specification document is used by various stakeholders, starting from customers or their representatives, through architects, developers to testers. Each role may have specific preferences for the form of requirements specification. To solve this problem, we propose a template for writing use-cases based on the existing guidelines and a transformation method that creates an activity diagram from the use-case textual specification consistent with the proposed template. There are several tools that can generate activity diagrams based on textual specification, but none of them fully meets the requirements for the form of template or resulting diagram, which should be correct (textual specification semantics preserved), UML 2.5 syntax compliant and contain necessary data. The proposed transformation method is supported by a tool that transforms models at the same level of abstraction. The transformation itself is defined at the meta-model level. The general idea of model-to-model transformation is not new, but the meta-models are original and fit for purpose. The application of the method is demonstrated by several examples. Due to the frequent potential changes in created specifications, the automation of the process will save time. Moreover, a graphical representation of a use-case is easier to analyze and find errors or inconsistencies compared to a textual specification.
Article details → -
Over the years, research into debugging distributed systems with message passing communication has focused on verifying the implementation of functionality, such as race condition detection, and not on the exchanged data. In this paper we explore this previously undervalued approach. We present a new component to gather exchanged messages. We create a simplified model of message passing and the component's design based on it. Then, we discuss how to utilise the component to create tools which provide currently missing debugging information. In the end, we implement the component as part of the O2 framework and conduct benchmarks. We obtain promising results – the component does not decrease the throughput.
Article details → -
The LHCb experiment at the Large Hadron Collider (LHC) at CERN has successfully performed a large number of physics measurements during Runs 1 and 2 of the LHC. Monte Carlo simulation is the key to the interpretation of these and future measurements. The LHCb experiment is currently undergoing a major detector upgrade for Run 3 of the LHC to process events with five times higher luminosity. New simulation software technologies have to be introduced to produce simulated data samples of sufficient size within the computing resources allocated for the next few years. Therefore, the LHCb collaboration is currently preparing an upgraded version of its Gauss simulation framework. The new version provides the LHCb specific functionality while its generic simulation infrastructure has been encapsulated in an experiment independent framework, Gaussino. The latter combines the Gaudi core software framework and the Geant4 simulation toolkit and fully exploits their multi-threading capabilities. A prototype of a fast simulation interface to the simulation toolkit is being developed as the latest addition to Gaussino to provide an extensive palette of fast simulation models, including new deep learning-based options.
Article details → -
Bespoke Cost Monitoring software collates data on the performance of all aspects of the ATLAS experiment's High Level Trigger software. These data are exported for subsequent analysis offline, and are used to understand the resource usage of the individual trigger selections in terms of the amount of CPU time and the amount of raw detector data which was required to perform the selection. For the LHC's Run 3, the ATLAS High Level Trigger is re-implemented in a multi-threaded framework with both intra-event and inter-event algorithm parallelism. We will describe some of the complications and considerations which arise from monitoring event metrics in a highly parallel environment.
Article details → -
Motor activity data allows for analysis of complex behavioral patterns, including the diagnosis of mental disorders, such as depression or schizophrenia. However, the classification of actigraphy signals remains a challenge. The main reasons are small datasets and the need for sophisticated feature engineering. The recent development of AutoML approaches allows for automating feature extraction and selection. In this work, we compare automatic and manual feature engineering for applications in mental health. We also analyze classifier evaluation methods for small datasets. The automated approach results in better classification, as measured with several metrics, and in a shorter, cleaner code, providing software engineering advantages.
Article details → -
This paper aims to survey the security and scalability problems occurring in private permissionless blockchain systems and solutions to them. The emphasis is put on the blockchain systems hosted by cloud vendors in the form of Blockchain-as-a-Service (BaaS). The currently available solutions offered by the most appreciated cloud providers are reviewed. The most promising services are tested for the real deployment of the consent management system (CMS). Implementing the CMS atop BaaS leads to creating Consent-as-a-Service (CaaS). Through experiments, the proposed system's replication ability and its scalability are examined, along with assessing the feasibility of the consent management system development in the provided cloud environment.
Article details → -
In this paper we consider the combinatorial optimization problem known as workflow scheduling. We compare three encoding schemes of varying density: one-hot, binary, and domain wall, and test their performance against two well-known hybrid quantum-classical algorithms: Quantum Approximate Optimization Algorithm (QAOA) and Variational Quantum Eigensolver (VQE). In an attempt to obtain the best results possible, we investigate various parameters of the algorithms and test out other state-of-the-art improvements, such as dedicated QAOA mixers. Ultimately, we prove that, despite its popularity, one-hot encoding is not always the best, and using a denser encoding scheme, such as binary or domain wall, can allow for solving larger instances of workflow scheduling. Additionally, combining the above-mentioned encodings with dedicated QAOA mixers reduces the number of infeasible solutions, leading to better results.
Article details → -
This article presents short analysis and observations on current trends and directions in conducting engineering theses in the field of computer science. This report is based on collected bachelor theses in AGH Computer Science Department for academic year 2020/2021 as well as the conducted competition for the best engineering theses held during XXII KKIO 2021 Software Engineering Conference. The awarded works are briefly presented as an illustration to the drawn conclusions.
Article details →