Virginia Niculescu | Universitatea Babeș Bolyai (original) (raw)

Papers by Virginia Niculescu

Research paper thumbnail of Peachy Parallel Assignments (EduPar 2023)

2023 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)

Peachy Parallel Assignments are a resource for instructors teaching parallel and distributed prog... more Peachy Parallel Assignments are a resource for instructors teaching parallel and distributed programming. These are high-quality assignments, previously tested in class, that are readily adoptable. This collection of assignments includes face recognition, finding the electrical potential of a square wire, and heat diffusion. All of these come with sample assignment sheets and the necessary starter code.

Research paper thumbnail of Cost evaluation from specifications for BSP programs

International Parallel and Distributed Processing Symposium, Apr 25, 2006

BSP has shown that structured parallel programming is not only a performance win, but it is also ... more BSP has shown that structured parallel programming is not only a performance win, but it is also a program construction win, especially if we add a formal method for designing. Maybe the most important advantage that BSP brings is the effective cost model that allows a good evaluation of the performance. The paper presents a technique for cost evaluation from specifications for BSP programs. We consider parameterized specifications and processes for BSP programs, and the parameters are the number of processes, the index of the local process, and the data distribution. The possibility of counting the number of communications from postconditions, allows us to make a cost evaluation even at the early stages of the design, and so it leads us to the right decisions.

Research paper thumbnail of Towards an Overhead Estimation Model for Multithreaded Parallel Programs

Proceedings of the 17th International Conference on Evaluation of Novel Approaches to Software Engineering

Research paper thumbnail of Tries-Based Parallel Solutions for Generating Perfect Crosswords Grids

Algorithms, 2022

A general crossword grid generation is considered an NP-complete problem and theoretically it cou... more A general crossword grid generation is considered an NP-complete problem and theoretically it could be a good candidate to be used by cryptography algorithms. In this article, we propose a new algorithm for generating perfect crosswords grids (with no black boxes) that relies on using tries data structures, which are very important for reducing the time for finding the solutions, and offers good opportunity for parallelisation, too. The algorithm uses a special tries representation and it is very efficient, but through parallelisation the performance is improved to a level that allows the solution to be obtained extremely fast. The experiments were conducted using a dictionary of almost 700,000 words, and the solutions were obtained using the parallelised version with an execution time in the order of minutes. We demonstrate here that finding a perfect crossword grid could be solved faster than has been estimated before, if we use tries as supporting data structures together with pa...

Research paper thumbnail of Guest Editor’s Note: High-Level Parallel Programming 2021

International Journal of Parallel Programming

The HLPP series of workshops/symposia, started in 2001, is a forum for researchers developing sta... more The HLPP series of workshops/symposia, started in 2001, is a forum for researchers developing state-of-the-art concepts, tools, and applications for high-level parallel programming. The general emphasis is on software quality, programming productivity and high-level performance models. After a rigorous peer-review process in two stages performed by the HLPP-2021 program committee members and additional reviewers (in a first stage for presentation at the HLPP-2021 symposium and in a second stage for inclusion in the special issue), revised versions of 5 of the papers presented at HLPP-2021 have been accepted for publication in this special issue. HLPP welcomes papers related to topics ranging from the design and implementation of high-level programming languages, libraries, and frameworks to the design and analysis of algorithms for structured models of parallelism. The former theme is usually more represented in both submissions and accepted papers. HLPP 2021 is no exception: four of the five papers are related to programming libraries and APIs, and one proposes an algorithm for the MapReduce model. A popular paradigm in the HLPP series, is skeletal parallelism. Algorithmic skeletons can be seen as higher-order functions implemented in parallel, and possibly manipulating distributed data structures. More generally skeletal parallelism encompasses languages, libraries and frameworks that offer reusable and composable patterns of parallel algorithms. The paper by August Ernstsson, Nicolas Vandenbergen, Jörg Keller, Christoph Kessler proposes an extension to the algorithmic skeleton library SkePU. In scientific applications, pseudo-random number generators are often part of computations.

Research paper thumbnail of Pattern-driven Design of a Multiparadigm Parallel Programming Framework

Proceedings of the 15th International Conference on Evaluation of Novel Approaches to Software Engineering

Parallel programming is more complex than sequential programming. It is therefore more difficult ... more Parallel programming is more complex than sequential programming. It is therefore more difficult to achieve the same software quality in a parallel context. High-level parallel programming approaches are intermediate approaches where users are offered simplified APIs. There is a trade-off between expressivity and programming productivity, while still offering good performance. By being less error-prone, high-level approaches can improve application quality. From the API user point of view, such approaches should provide ease of programming without hindering performance. From the API implementor point of view, such approaches should be portable across parallel paradigms and extensible. JPLF is a framework for the Java language based on the theory of Powerlists, which are parallel recursive data structures. It is a high-level parallel programming approach that possesses the qualities mentioned above. This paper reflects on the design of JPLF: it explains the design choices and highlights the design patterns and design principles applied to build JPLF.

Research paper thumbnail of Multi-way Divide and Conquer Parallel Programming based on PLists

2019 International Conference on Software, Telecommunications and Computer Networks (SoftCOM), 2019

Divide and Conquer with all its variants represents an important paradigm of parallel programming... more Divide and Conquer with all its variants represents an important paradigm of parallel programming. In this paper we present an implementation of PLists data structures and functions, which is introduced as an extension of a Java parallel programming framework - JPLF. The JPLF framework was initially based on PowerLists and their associated theory. By using functions defined on PLists, we may easily define programs based on the multi-way Divide and Conquer paradigm. Also, their definition allows the description of any kind of embarrassingly parallel computation. By introducing PLists into the JPLF framework, its application domain is very much enlarged, and also the flexibility of choosing the best computation variants is increased. The sizes of the data lists are not constrained any more - as it is for PowerLists to a power of two - and the level of parallelism could be much easier controlled. The experiments done for several applications reveal important improvements of the obtaine...

Research paper thumbnail of PList-based Divide and Conquer Parallel Programming

Journal of communications software and systems, 2020

This paper details an extension of a Java parallel programming framework – JPLF. The JPLF framewo... more This paper details an extension of a Java parallel programming framework – JPLF. The JPLF framework is a programming framework that helps programmers build parallel programs using existing building blocks. The framework is based on {\em PowerLists} and PList Theories and it naturally supports multi-way Divide and Conquer. By using this framework, the programmer is exempted from dealing with all the complexities of writing parallel programs from scratch. This extension to the JPLF framework adds PLists support to the framework and so, it enlarges the applicability of the framework to a larger set of parallel solvable problems. Using this extension, we may apply more flexible data division strategies. In addition, the length of the input lists no longer has to be a power of two – as required by the PowerLists theory. In this paper we unveil new applications that emphasize the new class of computations that can be executed within the JPLF framework. We also give a detailed description ...

Research paper thumbnail of On Generalizing Divide and Conquer Parallel Programming Pattern

Mathematics

This article is an open access article distributed under the terms and conditions of the Creative... more This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY

Research paper thumbnail of Attaining competences in software quality oriented design based on cyclic learning

This Research to Practice Full Paper delineates the impact of using cyclic learning to obtain com... more This Research to Practice Full Paper delineates the impact of using cyclic learning to obtain competences in software quality oriented design.Nowadays, the need for quality in the software systems has become more and more a concern for many researchers and industry practitioners. Developing students’ appropriate competencies and skills in writing quality programs must be an important objective of any Software Engineering related course from the Computer Science Curricula. In order to attain this goal, the paper presents a new strategy for reflecting software quality models into Software Engineering related courses based on cyclic learning. The method is based on an educational strategy that integrates the cyclic learning approach and induces to the students the awareness regarding the importance of developing quality software. We focus on a set of software quality characteristics described by the ISO25010 quality model for which we analyze the level of knowledge attained by the stud...

Research paper thumbnail of Microservice-Oriented Workload Prediction Using Deep Learning

e-Informatica Software Engineering Journal

Research paper thumbnail of Recommendation System for Student Academic Progress

Proceedings of the 14th International Conference on Agents and Artificial Intelligence, 2022

Research paper thumbnail of On the Impact of High Performance Computing in Big Data Analytics for Medicine

Applied Medical Informatics, 2020

For a long time, High Performance Computing (HPC) has been critical for running large-scale model... more For a long time, High Performance Computing (HPC) has been critical for running large-scale modeling and simulation using numerical models. The big data analytics domain (BDA) has been rapidly developed over the last years to process huge amounts of data now being generated in various domains. But, in general, the data analytics software was not developed inside the scientific computing community, and new approaches were adopted by BDA specialists. Data-intensive applications are needed in various fields of medicine and healthcare ranges from advanced research— as genomics, proteomics, epidemiology and systems biology—to medical diagnosis and treatments, or to commercial initiatives to develop new drugs. BDA needs the infrastructure and the fundamentals of HPC in order to face with the needed computational challenges. There are important differences in the approaches of these two domains: those that are working in BDA focus on the 5Vs of big data which are: volume, velocity, variety...

Research paper thumbnail of A Design Proposal For An Object Oriented Algebraic Library

Object oriented programming and design patterns introduce a high level of abstraction that allows... more Object oriented programming and design patterns introduce a high level of abstraction that allows us to implement and work with mathematical abstractions. Classic algebraic libraries, based on imperative programming, contain subalgorithms for working with polynomials, matrices, vectors, etc. Their big inconvenience is the dependency on types. For example, a polynomial can be built over any kind of algebraic unitary commutative ring (R, +, and we have to define a di#erent set of procedures that implement the common operations with polynomials, for every such ring.

Research paper thumbnail of Powerlists in Coq: Programming and Reasoning.

For parallel programs correctness by construction is an essential feature since debugging is almo... more For parallel programs correctness by construction is an essential feature since debugging is almost impossible. To build correct programs by constructions is not a simple task, and usually the methodologies used for this purpose are rather theoretical based on a pen-and-paper style. A better approach could be based on tools and theories that allow a user to develop an efficient parallel application by implementing easily simple programs satisfying conditions, ideally automatically, proved. PowerLists theory and the variants represent a good theoretical base for an approach like this, and Coq proof assistant is a tool that could be used for automatic proofs. The goal of this paper is to model the PowerList theory in Coq, and to use this modelling to program and reason on parallel programs in Coq. This represents the first step in building a framework that ease the development of correct and verifiable parallel programs.

Research paper thumbnail of Applied Medical Informatics

High-Performance Computing (HPC) is a mature domain that proved to be critical in running largesc... more High-Performance Computing (HPC) is a mature domain that proved to be critical in running largescale modelling and simulation using numerical models. The Big Data Analytics domain (BDA) has been rapidly developed over the last decade to process vast amounts of data now being generated in various fields. Data-intensive applications are needed in various fields of medicine and healthcare ranges from advanced research, as genomics, proteomics, epidemiology, and systems biology, to medical diagnosis and treatments, or to commercial initiatives to develop new drugs. BDA needs the infrastructure and the fundamentals of HPC to face with the required computational challenges. There are important differences in the approaches of these two domains, those that are working in BDA focus on big data specific features such as Volume, Velocity, Variety, Veracity, and Value, while HPC scientists tend to focus on Performance, Scaling, and Power efficiency of computations. In this paper we intend to a...

Research paper thumbnail of A Design Patterns Perspective on Data Structures

Abstract. Design patterns may introduce a new perspective on the traditional subject of data stru... more Abstract. Design patterns may introduce a new perspective on the traditional subject of data structures. We analyze in this paper how design patterns can be used for data structures implementation, and their advantages. The presentation is leaded by the design patterns classification: behavioral, structural and creational, and we prove here that all classes of patterns could be successfully used for data structures implementation. By using design patterns for data structures construction we emphasize new perspectives on data structures: separation between concepts and their representations, storage independence, reusability, and others. These could bring important changes in the design of the new collections libraries or frameworks. Examples that illustrate the impact of the design patterns in this context are presented, too. This analysis shows that design patterns could bring important advantages in basic fields of computer science, too.

Research paper thumbnail of Enhancing Java Streams API with PowerList Computation

2020 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)

Since they were introduced, Java streams were very fast embraced by the industry, being currently... more Since they were introduced, Java streams were very fast embraced by the industry, being currently used at a large scale. The parallelism enabled by them is very easy to achieve, but it is constrained either by the used parallelism model (in some cases), or by the set of operations that could be specified using streams. We investigate in this paper the possibility to enhance the computation types that could be defined using the Java streams API by introducing into this infrastructure the PowerList theory based computation. Powerlists are recursive data structures that together with their associated algebraic theory offer both abstractions in order to ease the development of parallel applications, and also a methodology to design parallel algorithms. The Java streaming infrastructure could be adapted to support them in a great measure. We present here such an adaptation, and we analyse and discuss the advantages and constraints. This analysis is exemplified by application examples.

Research paper thumbnail of MPI Scaling Up for Powerlist Based Parallel Programs

2019 27th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP)

Powerlists are recursive data structures that together with their associated algebraic theories c... more Powerlists are recursive data structures that together with their associated algebraic theories could offer both a methodology to design parallel algorithms and parallel programming abstractions to ease the development of parallel applications This has been also proved by a concrete development of such a framework that allows easy, efficient, and reliable implementation of Java parallel programs on shared memory systems. The paper presents a highly scalable version of this framework by extending it to distributed memory systems based on an MPI implementation. Through this extension we may use the framework to develop Java parallel programs also on distributed memory systems such as clusters. The design of the framework enables flexibility in defining the appropriate execution type depending on the execution system and its characteristics. Therefore, it is possible to choose MPI execution (that also could be combined with multithreading) if the available system includes an MPI platform, or simple multithreading execution. Examples are given and performance experiments are conducted. The performance analysis of these applications emphasises the utility and the efficiency of this framework extension.

Research paper thumbnail of IP Multihoming Throughput Maximization based on Passive RTT Measurements

2020 International Conference on Software, Telecommunications and Computer Networks (SoftCOM)

We present a routing solution for multihoming sites that maximizes the throughput of local flows.... more We present a routing solution for multihoming sites that maximizes the throughput of local flows. We consider the problem of transferring data between two multihomed network sites (i.e. network sites that have two or more uplinks to the Internet). Our routing solution is deployed at the edges of both multihomed sites and routes local flows dynamically through several outgoing network paths/links depending on the load (i.e. congestion level) on each path. If the load on a network path increases, fewer local flows are routed through it. We measure the load on a network path using passive RTT measurements. We performed a significant number of experiments in order to show that our multihoming solution performs better than an ECMP-based (i.e. Equal-Cost Multipath) solution in terms of total aggregated throughput and inter-flow fairness.

Research paper thumbnail of Peachy Parallel Assignments (EduPar 2023)

2023 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)

Peachy Parallel Assignments are a resource for instructors teaching parallel and distributed prog... more Peachy Parallel Assignments are a resource for instructors teaching parallel and distributed programming. These are high-quality assignments, previously tested in class, that are readily adoptable. This collection of assignments includes face recognition, finding the electrical potential of a square wire, and heat diffusion. All of these come with sample assignment sheets and the necessary starter code.

Research paper thumbnail of Cost evaluation from specifications for BSP programs

International Parallel and Distributed Processing Symposium, Apr 25, 2006

BSP has shown that structured parallel programming is not only a performance win, but it is also ... more BSP has shown that structured parallel programming is not only a performance win, but it is also a program construction win, especially if we add a formal method for designing. Maybe the most important advantage that BSP brings is the effective cost model that allows a good evaluation of the performance. The paper presents a technique for cost evaluation from specifications for BSP programs. We consider parameterized specifications and processes for BSP programs, and the parameters are the number of processes, the index of the local process, and the data distribution. The possibility of counting the number of communications from postconditions, allows us to make a cost evaluation even at the early stages of the design, and so it leads us to the right decisions.

Research paper thumbnail of Towards an Overhead Estimation Model for Multithreaded Parallel Programs

Proceedings of the 17th International Conference on Evaluation of Novel Approaches to Software Engineering

Research paper thumbnail of Tries-Based Parallel Solutions for Generating Perfect Crosswords Grids

Algorithms, 2022

A general crossword grid generation is considered an NP-complete problem and theoretically it cou... more A general crossword grid generation is considered an NP-complete problem and theoretically it could be a good candidate to be used by cryptography algorithms. In this article, we propose a new algorithm for generating perfect crosswords grids (with no black boxes) that relies on using tries data structures, which are very important for reducing the time for finding the solutions, and offers good opportunity for parallelisation, too. The algorithm uses a special tries representation and it is very efficient, but through parallelisation the performance is improved to a level that allows the solution to be obtained extremely fast. The experiments were conducted using a dictionary of almost 700,000 words, and the solutions were obtained using the parallelised version with an execution time in the order of minutes. We demonstrate here that finding a perfect crossword grid could be solved faster than has been estimated before, if we use tries as supporting data structures together with pa...

Research paper thumbnail of Guest Editor’s Note: High-Level Parallel Programming 2021

International Journal of Parallel Programming

The HLPP series of workshops/symposia, started in 2001, is a forum for researchers developing sta... more The HLPP series of workshops/symposia, started in 2001, is a forum for researchers developing state-of-the-art concepts, tools, and applications for high-level parallel programming. The general emphasis is on software quality, programming productivity and high-level performance models. After a rigorous peer-review process in two stages performed by the HLPP-2021 program committee members and additional reviewers (in a first stage for presentation at the HLPP-2021 symposium and in a second stage for inclusion in the special issue), revised versions of 5 of the papers presented at HLPP-2021 have been accepted for publication in this special issue. HLPP welcomes papers related to topics ranging from the design and implementation of high-level programming languages, libraries, and frameworks to the design and analysis of algorithms for structured models of parallelism. The former theme is usually more represented in both submissions and accepted papers. HLPP 2021 is no exception: four of the five papers are related to programming libraries and APIs, and one proposes an algorithm for the MapReduce model. A popular paradigm in the HLPP series, is skeletal parallelism. Algorithmic skeletons can be seen as higher-order functions implemented in parallel, and possibly manipulating distributed data structures. More generally skeletal parallelism encompasses languages, libraries and frameworks that offer reusable and composable patterns of parallel algorithms. The paper by August Ernstsson, Nicolas Vandenbergen, Jörg Keller, Christoph Kessler proposes an extension to the algorithmic skeleton library SkePU. In scientific applications, pseudo-random number generators are often part of computations.

Research paper thumbnail of Pattern-driven Design of a Multiparadigm Parallel Programming Framework

Proceedings of the 15th International Conference on Evaluation of Novel Approaches to Software Engineering

Parallel programming is more complex than sequential programming. It is therefore more difficult ... more Parallel programming is more complex than sequential programming. It is therefore more difficult to achieve the same software quality in a parallel context. High-level parallel programming approaches are intermediate approaches where users are offered simplified APIs. There is a trade-off between expressivity and programming productivity, while still offering good performance. By being less error-prone, high-level approaches can improve application quality. From the API user point of view, such approaches should provide ease of programming without hindering performance. From the API implementor point of view, such approaches should be portable across parallel paradigms and extensible. JPLF is a framework for the Java language based on the theory of Powerlists, which are parallel recursive data structures. It is a high-level parallel programming approach that possesses the qualities mentioned above. This paper reflects on the design of JPLF: it explains the design choices and highlights the design patterns and design principles applied to build JPLF.

Research paper thumbnail of Multi-way Divide and Conquer Parallel Programming based on PLists

2019 International Conference on Software, Telecommunications and Computer Networks (SoftCOM), 2019

Divide and Conquer with all its variants represents an important paradigm of parallel programming... more Divide and Conquer with all its variants represents an important paradigm of parallel programming. In this paper we present an implementation of PLists data structures and functions, which is introduced as an extension of a Java parallel programming framework - JPLF. The JPLF framework was initially based on PowerLists and their associated theory. By using functions defined on PLists, we may easily define programs based on the multi-way Divide and Conquer paradigm. Also, their definition allows the description of any kind of embarrassingly parallel computation. By introducing PLists into the JPLF framework, its application domain is very much enlarged, and also the flexibility of choosing the best computation variants is increased. The sizes of the data lists are not constrained any more - as it is for PowerLists to a power of two - and the level of parallelism could be much easier controlled. The experiments done for several applications reveal important improvements of the obtaine...

Research paper thumbnail of PList-based Divide and Conquer Parallel Programming

Journal of communications software and systems, 2020

This paper details an extension of a Java parallel programming framework – JPLF. The JPLF framewo... more This paper details an extension of a Java parallel programming framework – JPLF. The JPLF framework is a programming framework that helps programmers build parallel programs using existing building blocks. The framework is based on {\em PowerLists} and PList Theories and it naturally supports multi-way Divide and Conquer. By using this framework, the programmer is exempted from dealing with all the complexities of writing parallel programs from scratch. This extension to the JPLF framework adds PLists support to the framework and so, it enlarges the applicability of the framework to a larger set of parallel solvable problems. Using this extension, we may apply more flexible data division strategies. In addition, the length of the input lists no longer has to be a power of two – as required by the PowerLists theory. In this paper we unveil new applications that emphasize the new class of computations that can be executed within the JPLF framework. We also give a detailed description ...

Research paper thumbnail of On Generalizing Divide and Conquer Parallel Programming Pattern

Mathematics

This article is an open access article distributed under the terms and conditions of the Creative... more This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY

Research paper thumbnail of Attaining competences in software quality oriented design based on cyclic learning

This Research to Practice Full Paper delineates the impact of using cyclic learning to obtain com... more This Research to Practice Full Paper delineates the impact of using cyclic learning to obtain competences in software quality oriented design.Nowadays, the need for quality in the software systems has become more and more a concern for many researchers and industry practitioners. Developing students’ appropriate competencies and skills in writing quality programs must be an important objective of any Software Engineering related course from the Computer Science Curricula. In order to attain this goal, the paper presents a new strategy for reflecting software quality models into Software Engineering related courses based on cyclic learning. The method is based on an educational strategy that integrates the cyclic learning approach and induces to the students the awareness regarding the importance of developing quality software. We focus on a set of software quality characteristics described by the ISO25010 quality model for which we analyze the level of knowledge attained by the stud...

Research paper thumbnail of Microservice-Oriented Workload Prediction Using Deep Learning

e-Informatica Software Engineering Journal

Research paper thumbnail of Recommendation System for Student Academic Progress

Proceedings of the 14th International Conference on Agents and Artificial Intelligence, 2022

Research paper thumbnail of On the Impact of High Performance Computing in Big Data Analytics for Medicine

Applied Medical Informatics, 2020

For a long time, High Performance Computing (HPC) has been critical for running large-scale model... more For a long time, High Performance Computing (HPC) has been critical for running large-scale modeling and simulation using numerical models. The big data analytics domain (BDA) has been rapidly developed over the last years to process huge amounts of data now being generated in various domains. But, in general, the data analytics software was not developed inside the scientific computing community, and new approaches were adopted by BDA specialists. Data-intensive applications are needed in various fields of medicine and healthcare ranges from advanced research— as genomics, proteomics, epidemiology and systems biology—to medical diagnosis and treatments, or to commercial initiatives to develop new drugs. BDA needs the infrastructure and the fundamentals of HPC in order to face with the needed computational challenges. There are important differences in the approaches of these two domains: those that are working in BDA focus on the 5Vs of big data which are: volume, velocity, variety...

Research paper thumbnail of A Design Proposal For An Object Oriented Algebraic Library

Object oriented programming and design patterns introduce a high level of abstraction that allows... more Object oriented programming and design patterns introduce a high level of abstraction that allows us to implement and work with mathematical abstractions. Classic algebraic libraries, based on imperative programming, contain subalgorithms for working with polynomials, matrices, vectors, etc. Their big inconvenience is the dependency on types. For example, a polynomial can be built over any kind of algebraic unitary commutative ring (R, +, and we have to define a di#erent set of procedures that implement the common operations with polynomials, for every such ring.

Research paper thumbnail of Powerlists in Coq: Programming and Reasoning.

For parallel programs correctness by construction is an essential feature since debugging is almo... more For parallel programs correctness by construction is an essential feature since debugging is almost impossible. To build correct programs by constructions is not a simple task, and usually the methodologies used for this purpose are rather theoretical based on a pen-and-paper style. A better approach could be based on tools and theories that allow a user to develop an efficient parallel application by implementing easily simple programs satisfying conditions, ideally automatically, proved. PowerLists theory and the variants represent a good theoretical base for an approach like this, and Coq proof assistant is a tool that could be used for automatic proofs. The goal of this paper is to model the PowerList theory in Coq, and to use this modelling to program and reason on parallel programs in Coq. This represents the first step in building a framework that ease the development of correct and verifiable parallel programs.

Research paper thumbnail of Applied Medical Informatics

High-Performance Computing (HPC) is a mature domain that proved to be critical in running largesc... more High-Performance Computing (HPC) is a mature domain that proved to be critical in running largescale modelling and simulation using numerical models. The Big Data Analytics domain (BDA) has been rapidly developed over the last decade to process vast amounts of data now being generated in various fields. Data-intensive applications are needed in various fields of medicine and healthcare ranges from advanced research, as genomics, proteomics, epidemiology, and systems biology, to medical diagnosis and treatments, or to commercial initiatives to develop new drugs. BDA needs the infrastructure and the fundamentals of HPC to face with the required computational challenges. There are important differences in the approaches of these two domains, those that are working in BDA focus on big data specific features such as Volume, Velocity, Variety, Veracity, and Value, while HPC scientists tend to focus on Performance, Scaling, and Power efficiency of computations. In this paper we intend to a...

Research paper thumbnail of A Design Patterns Perspective on Data Structures

Abstract. Design patterns may introduce a new perspective on the traditional subject of data stru... more Abstract. Design patterns may introduce a new perspective on the traditional subject of data structures. We analyze in this paper how design patterns can be used for data structures implementation, and their advantages. The presentation is leaded by the design patterns classification: behavioral, structural and creational, and we prove here that all classes of patterns could be successfully used for data structures implementation. By using design patterns for data structures construction we emphasize new perspectives on data structures: separation between concepts and their representations, storage independence, reusability, and others. These could bring important changes in the design of the new collections libraries or frameworks. Examples that illustrate the impact of the design patterns in this context are presented, too. This analysis shows that design patterns could bring important advantages in basic fields of computer science, too.

Research paper thumbnail of Enhancing Java Streams API with PowerList Computation

2020 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)

Since they were introduced, Java streams were very fast embraced by the industry, being currently... more Since they were introduced, Java streams were very fast embraced by the industry, being currently used at a large scale. The parallelism enabled by them is very easy to achieve, but it is constrained either by the used parallelism model (in some cases), or by the set of operations that could be specified using streams. We investigate in this paper the possibility to enhance the computation types that could be defined using the Java streams API by introducing into this infrastructure the PowerList theory based computation. Powerlists are recursive data structures that together with their associated algebraic theory offer both abstractions in order to ease the development of parallel applications, and also a methodology to design parallel algorithms. The Java streaming infrastructure could be adapted to support them in a great measure. We present here such an adaptation, and we analyse and discuss the advantages and constraints. This analysis is exemplified by application examples.

Research paper thumbnail of MPI Scaling Up for Powerlist Based Parallel Programs

2019 27th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP)

Powerlists are recursive data structures that together with their associated algebraic theories c... more Powerlists are recursive data structures that together with their associated algebraic theories could offer both a methodology to design parallel algorithms and parallel programming abstractions to ease the development of parallel applications This has been also proved by a concrete development of such a framework that allows easy, efficient, and reliable implementation of Java parallel programs on shared memory systems. The paper presents a highly scalable version of this framework by extending it to distributed memory systems based on an MPI implementation. Through this extension we may use the framework to develop Java parallel programs also on distributed memory systems such as clusters. The design of the framework enables flexibility in defining the appropriate execution type depending on the execution system and its characteristics. Therefore, it is possible to choose MPI execution (that also could be combined with multithreading) if the available system includes an MPI platform, or simple multithreading execution. Examples are given and performance experiments are conducted. The performance analysis of these applications emphasises the utility and the efficiency of this framework extension.

Research paper thumbnail of IP Multihoming Throughput Maximization based on Passive RTT Measurements

2020 International Conference on Software, Telecommunications and Computer Networks (SoftCOM)

We present a routing solution for multihoming sites that maximizes the throughput of local flows.... more We present a routing solution for multihoming sites that maximizes the throughput of local flows. We consider the problem of transferring data between two multihomed network sites (i.e. network sites that have two or more uplinks to the Internet). Our routing solution is deployed at the edges of both multihomed sites and routes local flows dynamically through several outgoing network paths/links depending on the load (i.e. congestion level) on each path. If the load on a network path increases, fewer local flows are routed through it. We measure the load on a network path using passive RTT measurements. We performed a significant number of experiments in order to show that our multihoming solution performs better than an ECMP-based (i.e. Equal-Cost Multipath) solution in terms of total aggregated throughput and inter-flow fairness.