Experimental Platform for Edge Computing Applications (ExPECA)
ExPECA is an SSF-funded infrastructure project targeting the development and provisioning of an edge computing infrastructure for research into novel applications and network architectures. It is owned and developed by Dr. James Gross' group at the division of Information Science and Engineering of the School of Electrical Engineering and Computer Science at KTH. The project has preliminary run-time from 2019 to 2022.
Today's data networks and cloud-computing infrastructure are highly optimized toward common applications with downlink-dominant network traffic characteristics, such as web-browsing and video- and music streaming, that prioritize bandwidth over responsiveness. However, they are unsuitable for novel emerging closed-loop applications, such as networked control systems or immersive AR, which have completely different traffic characteristics and require extremely low round-trip latencies. This has led to the emergence of a new distributed computing paradigm which aims to deploy networked computing resources as close to the application as possible. Known as Edge Computing, this paradigm is quickly becoming reality together with new networking technologies (5G, beyond-5G) which further benefit these highly latency-constrained applications.
However, while it is widely understood that Edge Computing brings much-needed improvements in performance, little is known yet about the detailed characteristics of these systems and their implications for applications. Essentially, there is a gap between theoretical work and the achievable performance of edge computing systems in practice, a gap that must be bridged before these systems can become a widespread reality.
Our goal with the ExPECA testbed is to bridge this gap. We provide a cluster of hardware-reconfigurable general-purpose computing nodes interconnected using managed switches and Software-Defined Radios. This allows us to quickly, on-the-fly, and in an automated fashion change the characteristics of the cluster and the network, in order to study different Edge- and Cloud-computing deployments and the applications that run on them.
My responsibilities within the development of the ExPECA project can be described as:
Main responsible for the development of the upper software layer of the testbed. Broadly speaking, the software architecture of ExPECA can be split into two main layers:
- The lower layer, which operates close to the hardware, managing components such as switching equipment and the Software-Defined Radios.
- The aforementioned upper layer, which operates on the hardware configuration deployed by the lower layer, and handles the configuration of the computing nodes and deployment of containerized applications to the testbed.
In this context, I write software for automated configuration of the Linux networking stack on the compute nodes, instantiation of cloud resources, establishment of VPN connections, and deployment of containers on a Docker Swarm cluster.
Co-architect of the testbed. This includes computing devices and auxiliary management devices (logging servers, remote access, etc), as well as network equipment and layout design (switching, routing, DNS, etc).
Main responsible for the development of application use-cases for the testbed. This goes in hand with my main track of research relating to the modeling and performance evaluation of immersive, highly-interactive human-in-the-loop and closed-loop applications on Edge Computing infrastructure.
Finally, I also develop and maintain the documentation and public website (coming soon) for the project.