Papers by Paulo Sérgio Lopes de Souza
This paper presents the Siflor application, developed from research carried out in the Siflor Cer... more This paper presents the Siflor application, developed from research carried out in the Siflor Cerrado project. The application supports the recommendation of forest species, collaborating with the rural producer's decisionmaking process. The research is motivated by the environmental restrictions on the cultivation of tree species in the Brazilian cerrado biome, aiming to collaborate with the Low Carbon Emission Agriculture Plan. The application is free and covers part of 15 Brazilian states. Resumo. Este artigo descreve o aplicativo Siflor, desenvolvido a partir das pesquisas realizadas no projeto Siflor Cerrado. O aplicativo apoia a recomendac ¸ão de espécies florestais, colaborando com a tomada de decisão do produtor rural. A pesquisa é motivada pelas restric ¸ões ambientais ao cultivo de espécies arbóreas no bioma cerrado brasileiro, visando colaborar com o Plano de Agricultura de Baixa Emissão de Carbono. O aplicativo é gratuito e abrange parte de 15 estados brasileiros, onde se encontra a cobertura do Cerrado Brasileiro. * Este trabalho teve o financiamento do MAPA -Ministério da Agricultura, Pecuária e Abastecimento do Governo Brasileiro.
International journal of services computing, Oct 1, 2015
Current distributed computing environments, such as Cloud Computing, Grid Computing and Internet ... more Current distributed computing environments, such as Cloud Computing, Grid Computing and Internet of Things are typically complex and present dynamic scenarios, which makes the execution of experiments, tests and performance evaluations challenging. Performing large scale experiments in Service-Oriented Computing (SOC) environments can be a difficult and complex task. In this paper, we propose a Distributed and Collaborative Architecture for Conducting Experiments in Service Oriented Systems (DCA-SERVICES). DCA-SERVICES is a client-server architecture that provides a real environment to execute experiments in systems based on the SOC paradigm. Using the DCA-SERVICES and our developed tool named Planning and Execution of Experiments in Service Oriented Systems (PEESOS), we were able to execute experiments, tests, and analyze a target system environment quickly and efficiently.
The functional testing technique has been widely applied to reveal unknown faults in the software... more The functional testing technique has been widely applied to reveal unknown faults in the software caused by programmer mistakes. Nevertheless, in autonomous data processing systems with highly variable inputs and outputs, such as embedded applications, data streams, and machine learning algorithms, the non-functional testing helps to reveal unknown-nontrivial faults in the deployment of software products. This paper addresses the detection of unknown code-faults by employing performance analysis as a nonfunctional requirement without predefined test cases, test oracles, or source-code analyses. The premise is that codefaults change demands for hardware resources during software execution, and a novel testing methodology can automatically detect them. This paper proposes the Tricorder testing methodology for automating workload characterization and detecting potential performance anomalies, caused by code-faults in autonomous data processing systems. Tricorder evaluates the performan...
This paper proposes new algorithms for generation of trace files and deterministic execution of c... more This paper proposes new algorithms for generation of trace files and deterministic execution of concurrent programs under test. The proposed algorithms are essential to automate the coverage testing of concurrent programs and allow to execute new synchronizations automatically, increasing the source code coverage with focus on non-determinism, and edges of communication and synchronization. Our algorithms consider programs with multiple paradigms of communication and synchronization (collective, blocking and non-blocking point-to-point message passing, and shared memory). We validate our algorithms by means of experiments based on nine representative benchmarks, which exercise non-trivial aspects of synchronization found in real applications. Our algorithms have a robust behaviour and meet their objectives. We also highlight the overhead generated with the algorithms.
Software Quality Journal, 2020
Conventional approaches for the validation of robotic systems include simulations and functional ... more Conventional approaches for the validation of robotic systems include simulations and functional software testing. Although these approaches are interesting, they do not offer coverage information to guide the testing activity. In this sense, the introduction of coverage testing to the validation of mobile robotic systems seems to promise. This paper proposes a integration testing approach for robotic systems in a simulation environment. The approach is composed of test scenarios, constructed based on functional testing, and structural testing towards revealing defects and providing a better systematization of the testing activity in this application domain. The proposed approach focuses on systems developed in ROS, the robot operating system, in which communication can be established through a publish/subscribe interaction schema. The paper provides an example of the way the integration testing approach can be applied to robotic systems. An experimental study conducted with developers of mobile robotic systems evaluated the gains and proved the applicability of the approach to the industry. The results confirmed its advantages for the integration testing of mobile robotic systems. It can check functional behavior (test scenarios), or reach a high structural coverage (coverage criteria), and reveal common defects in mobile robotic systems.
The problem of Protein Structure Prediction (PSP) is one of the major challenges in computational... more The problem of Protein Structure Prediction (PSP) is one of the major challenges in computational biology, which has attracted the interest of many researchers in several areas. However, determining the three dimensional structure is an expensive and a time-consuming taks, even considering the current advances made in High-Performance Computing (HPC) systems. This paper presents a systematic mapping on HPC for PSP problems, aiming to determine: protein energy models applied to solve PSP problems with HPC, parallel programming models considered in such HPC solutions, and the heuristics and metaheuristics implemented with HPC for PSP. We considered 5732 papers published until January 2018 and, from this set, a total of 72 studies were selected for this paper. Our results show an increasing interest to apply HPC for this hard computing problem, using MPI as programming model and clusters as infrastructure to solve PSP problems. Some hybrid programming models with OpenMP and CUDA can al...
Brazilian Journal of Development, 2019
The discovery of the structure of a protein is a difficult and expensive task, because it require... more The discovery of the structure of a protein is a difficult and expensive task, because it requires minimizing different energies related to them. The van der Waals energy hás the most expensive evaluation in this context, and computational methods have been developed in this way, such as Genetic Algorithm (GA) and cell-list technique, which reduces its the complexity from O(n2) to O(n). Even with the support of GA and cell lists, the van der Waals energy evaluation still requires a long computing time, even for a small protein. Parallel Computing is capable to reduce the runtime to predict the structure of proteins. Parallel algorithms in such context are usually specific for one programming model and computer architecture, resulting in limited speedups. This paper compares the runtime of three distinct parallel algorithms for the evaluation of an ab initio and full-atom approach based on GA and cell-list technique, in order to minimize the van der Waals energy. The three parallel algorithms are in C and use one of these programming models: MPI, OpenMP or hybrid (MPI+Open MP). Our results show that van der Waals Energy are executed faster and with better speedups when using hybrid and more flexible parallel algorithms to predict the structure of larger proteins. We also show that for small proteins the communication of MPI imposes a high overhead for the parallel execution and, thus the Open MP presents a better relation cost x benefit in such cases
Procedia Computer Science, 2016
This paper proposes a novel suite of benchmarks for the evaluation of the structural testing of c... more This paper proposes a novel suite of benchmarks for the evaluation of the structural testing of concurrent programs with message-passing paradigm. This suite is composed of thirteen bugfree programs and five faulty programs. The benchmarks are developed in Java and are available as free-software on the Internet. They were validated with experimental studies and also have been used in different research and for educational aims. The obtained results showed that the benchmarks can generate qualified workload for the testing of message-passing programs. The main contribution of this study is the development of a more robust and fair suite of benchmarks capable of improving the evaluation of the testing activity applied to concurrent programs.
Proceedings of the 27th International Conference on Software Engineering and Knowledge Engineering, 2015
Testing activity applied to mobile robotic systems is a challenge because new features, such as n... more Testing activity applied to mobile robotic systems is a challenge because new features, such as non-determinism of inputs, communication among components and time constraints must be considered. Simulation has been used to support the development and validation of these systems. Coverage testing criteria can contribute to this scenario adding mechanisms for measuring quality during the development of systems. This paper presents a test model and a set of coverage criteria to test the interaction among the components of mobile robotic systems. The model and criteria focus on robotic systems developed in ROS, a Robotic Operational System in which communication is established through publish/subscribe interaction schema. The testing criteria were evaluated using a robotic application. The results confirm that the use of coverage testing criteria has advantages for integration testing of mobile robotic systems.
Proceedings of the Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, 2011
Systematic Review Planning and Conduction Results Conclusion Bibliography Planning and Conduction... more Systematic Review Planning and Conduction Results Conclusion Bibliography Planning and Conduction Results Conclusion Bibliography Planning and Conduction Results Conclusion Bibliography Planning and Conduction Results Conclusion Bibliography Systematic Review Planning and Conduction Results Conclusion Bibliography Systematic review planning Planning and Conduction Results Conclusion Bibliography Planning and Conduction Results Conclusion Bibliography Planning and Conduction Results Conclusion Bibliography Systematic review planning 4. Definition of a Control List Composed of already-known primary studies related to the research subject Used to check if the research results contain all papers present in this control list Provides a mechanism to evaluate the effectiveness of the search strings Planning and Conduction Results Conclusion Bibliography Planning and Conduction Results Conclusion Bibliography Planning and Conduction Results Conclusion Bibliography Planning and Conduction Results Conclusion Bibliography Planning and Conduction Results Conclusion Bibliography
2011 IEEE International Conference on Services Computing, 2011
This paper presents a novel architecture for distributing web service requests on clusters of ser... more This paper presents a novel architecture for distributing web service requests on clusters of servers. The architecture facilitates a transparent dynamic distribution of requests according to a range of specified policies. This enables a flexible performance in respect of different objectives, services and platforms (typically based on server workload). The architecture has been successfully demonstrated with a prototype implementation (called "Jerrymouse"). Our preliminary results with Jerrymouse indicate stable behaviour and worthwhile performance gains (compared with Apache HTTP Server). A specific policy to deliver reduced cluster electricity savings has also been successfully implemented.
Procedia Computer Science, 2013
This paper proposes a novel structural test model to capture information about flows of data, con... more This paper proposes a novel structural test model to capture information about flows of data, control, communication and synchronization of parallel and distributed applications interacting through both message passing and shared memory paradigms. Our main focus is the data flow among threads of different processes, considering the operations of communication and synchronization related to such flow. This inter-process data-flow represents a challenge to the tester, who must consider the heterogeneity of programming paradigms and languages. The information captured by the test model is used by new testing criteria, which improve the testing activity quality. The proposed model and criteria were applied to an object-oriented and distributed application developed in Java. The results suggest that the model and the criteria are able to represent distributed applications developed with message passing and shared memory paradigms. The main contribution of this paper is to present a more flexible test model capable of improving the structural test activity related to the data flow on processes and threads simultaneously.
Procedia Computer Science, 2013
Concurrent program testing is not a trivial task. Features like nondeterminism, communication and... more Concurrent program testing is not a trivial task. Features like nondeterminism, communication and synchronization impose new challenges that must be considered during the testing activity. Some initiatives have proposed testing approaches for concurrent programs, in which different paradigms and programming languages are considered. However, in general, these contributions do not present a well-formed experimental study to validate their ideas. The problem is that the data used and generated during the validation is not always available, hampering the replication of studies in the context of other testing approaches. This paper presents an experimental study, taking into account the concepts of the Experimental Software Engineering to evaluate the cost, effectiveness and strength of the structural testing criteria for message-passing programs. The evaluation was conducted considering a benchmark composed of eight MPI programs. A set of eight structural testing criteria defined for message-passing programs was evaluated with the ValiMPI testing tool, which provides the support required to apply the investigated testing criteria. The results indicate the complementary aspect of the criteria and the information about cost and effectiveness has contributed to the establishment of an incremental testing strategy to apply the criteria. All material generated during the experimental study is available for further comparisons.
PLoS ONE, 2013
The lack of precision to predict service performance through load indices may lead to wrong decis... more The lack of precision to predict service performance through load indices may lead to wrong decisions regarding the use of web services, compromising service performance and raising platform cost unnecessarily. This paper presents experimental studies to qualify the behaviour of load indices in the web service context. The experiments consider three services that generate controlled and significant server demands, four levels of workload for each service and six distinct execution scenarios. The evaluation considers three relevant perspectives: the capability for representing recent workloads, the capability for predicting near-future performance and finally stability. Eight different load indices were analysed, including the JMX Average Time index (proposed in this paper) specifically designed to address the limitations of the other indices. A systematic approach is applied to evaluate the different load indices, considering a multiple linear regression model based on the stepwise-AIC method. The results show that the load indices studied represent the workload to some extent; however, in contrast to expectations, most of them do not exhibit a coherent correlation with service performance and this can result in stability problems. The JMX Average Time index is an exception, showing a stable behaviour which is tightlycoupled to the service runtime for all executions. Load indices are used to predict the service runtime and therefore their inappropriate use can lead to decisions that will impact negatively on both service performance and execution cost.
International Journal of Software Engineering and Knowledge Engineering
Mutation testing is well known as one of the most effective approaches to create test cases, whic... more Mutation testing is well known as one of the most effective approaches to create test cases, which can detect software faults. However, its drawback is the low scalability — if no special attention is given to improve efficiency — that directly affects its application in practice. This paper shows a replication study focused on emphasizing evidence in which the use of distributed processing structures can improve mutation testing. For this purpose, an architecture that enables mutation testing concurrent execution was designed. Five load balancing algorithms responsible for controlling the distribution and execution of data while carrying out mutation testing were evaluated. Experiments were conducted in order to evaluate the scalability and performance of the architecture considering homogeneous and heterogeneous setups. A time reduction of 50% was observed when executing mutants in parallel in relation to the conventional sequential application of mutation testing. The performance...
Computational Science – ICCS 2008, 2008
This paper presents structural testing criteria for validation of semaphore-based multithread pro... more This paper presents structural testing criteria for validation of semaphore-based multithread programs exploring control, data, communication and synchronization information. A post-mortem method based on timestamps is defined to determine the implicit communication among threads using shared variables. The applicability of the coverage testing criteria is illustrated by a case study.
Software Testing, Verification and Reliability, 2015
Testing is a key activity to assure the quality of concurrent applications. In recent years, a va... more Testing is a key activity to assure the quality of concurrent applications. In recent years, a variety of different mechanisms have been proposed to test concurrent software. However, a persistent problem is the high testing cost because of the large number of different synchronization sequences that must be tested. When structural testing criteria are adopted, a large number of infeasible synchronization sequences is generated, increasing the testing cost. Although the use of reachability testing reduces the number of infeasible combination (because only feasible synchronization sequences are generated), many synchronization combinations are also generated, and this again results in a testing cost with exponential behavior. This paper presents a new composite approach that uses reachability testing to guide the selection of the synchronization sequences tests according to a specific structural testing criterion. This new composite approach is empirically evaluated in the context of message-passing concurrent programs developed with MPI. The experimental study evaluates both the cost and effectiveness of proposed composite approach in comparison with traditional reachability testing and structural testing. The results confirm that the use of the new composite approach has advantages for testing of concurrent applications.
Revista Eletrônica de Iniciação Científica em Computação
The problem of Protein Structure Prediction (PSP) is known to be computationally expensive, which... more The problem of Protein Structure Prediction (PSP) is known to be computationally expensive, which calls for the application of high performance techniques. In this project, parallel PSP algorithms found in the literature are being accelerated and ported to different parallel platforms, producing a set of algorithms that it is diverse in terms of the parallel architectures and parallel programming models used. The algorithms are intended to help other research projects and they have also been made publicly available so as to support the development of more elaborate prediction algorithms. We have thus far produced a set of 16 algorithms (mixing CUDA, OpenMP, MPI and/or complexity reduction optimizations); during its development, two algorithms that promote high performance were proposed, and they have been written in an article that was accepted in the International Conference on Computational Science (ICCS).
Blockchain nasceu com o surgimento do Bitcoin, apresentando-se como uma infraestrutura para o arm... more Blockchain nasceu com o surgimento do Bitcoin, apresentando-se como uma infraestrutura para o armazenamento distribuído de transações financeiras com garantia de imutabilidade. Pelas suas características, o blockchain passou a ser utilizado por outras aplicações que podem se beneficiar dessa infraestrutura. Essas aplicações apresentam demandas distintas daquelas focadas em transações financeiras, como manipulação de diferentes tipos de dados e privacidade das informações. O objetivo deste projeto em andamento é verificar o desempenho do blockchain quando utilizado aplicações que demandam dados heterogêneos.
Uploads
Papers by Paulo Sérgio Lopes de Souza