2017
Autores
Silva, J; Silva, D; Marques, ERB; Lopes, LMB; Silva, FMA;
Publicação
Proceedings of the 4th Workshop on CrossCloud Infrastructures & Platforms, CrossCloud@EuroSys 2017, Belgrade, Serbia, April 23 - 26, 2017
Abstract
We address the problem of whether networks of mobile devices such as smart-phones or tablets can be used to perform opportunistic, best-effort, parallel computations. We designed and implemented P3-Mobile, a parallel programming system for edge-clouds of Android devices to test the feasibility of this idea. P3-Mobile comes with a programming model that supports parallel computations over peer-to-peer overlays mapped onto mobile networks. The system performs automatic load-balancing by using the overlay to discover work. We present preliminary performance results for a parallel benchmark, using up to 16 devices, and discuss their implications towards future work. Copyright © 2017 ACM.
2017
Autores
Rodrigues, J; Marques, ERB; Lopes, LMB; Silva, FMA;
Publicação
Proceedings of the 2nd Workshop on Middleware for Edge Clouds & Cloudlets, MECC@Middleware 2017, Las Vegas, NV, USA, December 11 - 15, 2017
Abstract
In the last decade, technological advances and improved manufacturing processes have significantly dropped the price tag of mobile devices such as smartphones and tablets whilst augmenting their storage and computational capabilities. Their ubiquity fostered research on mobile edge-clouds, formed by sets of such devices in close proximity, with the goal of mastering their global computational and storage resources. The development of crowdsourcing applications that take advantage of such edge-clouds is, however, hampered by the complexity of network formation and maintenance, the intrinsic instability of wireless links and the heterogeneity of the hardware and operating systems in the devices. In this paper we present a middleware to deal with this complexity, providing a building block upon which crowd-sourcing applications may be built.We motivate the development of the middleware through a discussion of real-world applications, and present the middleware's architecture along with the associated components and current development status. The middleware takes form as a Java API for Android devices that allows for the establishment of links using heterogeneous communication technologies (e.g., Wifi-Direct, Bluetooth), and the combination of these links to form a logical edge-cloud network. On top of this functionality, services for edge computation, storage, and streaming are also being developed. © 2017 Association for Computing Machinery.
2013
Autores
Pinto, J; Dias, PS; Martins, R; Fortuna, J; Marques, E; Sousa, J;
Publicação
2013 MTS/IEEE OCEANS - BERGEN
Abstract
This paper describes the open-source software toolchain developed by the Underwater Systems and Technology Laboratory (LSTS) for supporting networked heterogeneous air and ocean vehicle systems. The toolchain supports the deployment of air and ocean vehicles interacting over limited acoustic and wireless networks combined with disruption-tolerant networking protocols. We present the different components of the toolchain and how they can be deployed and extended for different scenarios. We conclude with descriptions of recent applications to onboard deliberative planning and integration of low-cost micro UAVs into the toolchain.
2013
Autores
Marques, ERB; Martins, F; Vasconcelos, VT; Ng, N; Martins, N;
Publicação
Proceedings 6th Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software, PLACES 2013, Rome, Italy, 23rd March 2013.
Abstract
The Message Passing Interface (MPI) is the de facto standard message-passing infrastructure for developing parallel applications. Two decades after the first version of the library specification, MPI-based applications are nowadays routinely deployed on super and cluster computers. These applications, written in C or Fortran, exhibit intricate message passing behaviours, making it hard to statically verify important properties such as the absence of deadlocks. Our work builds on session types, a theory for describing protocols that provides for correct-by-construction guarantees in this regard. We annotate MPI primitives and C code with session type contracts, written in the language of a software verifier for C. Annotated code is then checked for correctness with the software verifier. We present preliminary results and discuss the challenges that lie ahead for verifying realistic MPI program compliance against session types.
2015
Autores
Marques, ERB; Ribeiro, M; Pinto, J; Sousa, JB; Martins, F;
Publicação
IFAC Proceedings Volumes (IFAC-PapersOnline)
Abstract
The use of unmanned vehicle networks for diverse applications is becoming widespread. It is generally hard to program unmanned vehicle networks as a "whole", however. The coordination of multiple vehicles requires careful planning through intricate human intervention, and a high degree of informality is implied in what concerns the specification of a "network program" for an application scenario. In this context, we have been developing a programming language for expressing global specifications of coordinated behavior in unmanned vehicle networks, the Networked Vehicles' Language (NVL). In this paper we illustrate the use of the language for a thermal pollution plume tracking scenario employing unmanned underwater vehicles.
2014
Autores
Marques, ERB; Martins, F; Simões, M;
Publicação
2014 International Conference on Principles and Practices of Programming on the Java Platform Virtual Machines, Languages and Tools, PPPJ '14, Cracow, Poland, September 23-26, 2014
Abstract
Bugs in multithreaded application can be elusive. They are often hard to trace and replicate, given the usual non-determinism and irreproducibility of scheduling decisions at runtime. We present Cooperari, a tool for deterministic testing of multithreaded Java code based on cooperative execution. In a cooperative execution, threads voluntarily suspend (yield) at interference points (e.g., lock acquisition), and code between two consecutive yield points of each thread always executes serially as a transaction. A cooperative scheduler takes over control at yield points and deterministically selects the next thread to run. An application test runs multiple times, until it either fails or the state-space of schedules is deemed as covered by a configurable policy that is responsible for the scheduling decisions. Beyond failed assertions in software tests, deadlocks and races are also detected as soon as they are exposed in the cooperative execution. Cooperari effectively finds, characterizes, and deterministically reproduces bugs that are not detected under unconstrained preemptive semantics, as illustrated by standard benchmark examples.
The access to the final selection minute is only available to applicants.
Please check the confirmation e-mail of your application to obtain the access code.