XERIS/APEX: Hyperscaling with Ada
Using Ada to implement traditional, containerized microservices is trivial. However, doing so fails to fully harness Ada’s explicit design focus on the development of very large systems, among other strengths like concurrency and strong typing.
XERIS/APEX ultimately seeks to implement a framework that integrates with the Ada runtime, to provide super efficient distributed computing and communication across a dynamic number of partitions and nodes, both on contemporary cloud platforms and across ad-hoc IoT networks. XERIS/APEX achieves this with a combination of a shared-memory communications layer, and an optional Ada-specific exokernel.
There are two fundamental design considerations that constrict the communications framework. Firstly, it must be capable of supporting a full implementation of Ada’s Annex E E.5 “Partition Communication Subsystem”. Secondly, it should provide the simplest and safest possible direct interface for the implementation of custom high-performance user-defined distributed message passing models.
The communications layer is optimized for rDMA fabrics but is largely transport agnostic. Tenancy of the larger network (the “tier horizon”) is dynamic and management is fully decentralized. On each machine (or NUMA region), the communication layer presents itself as a decentralized set of CAS queues in a shared memory region, which manage the ownership of a related set of “sectors” in the same shared memory region. Since all synchronization is via CAS queues, the system is fully lockless and does not require mediation by the kernel. Marshaling of data between regions is handled by a dedicated partition per region, which transparently uses whatever transport schemes are available for the larger tier horizon network.
Richard Wai is the Founder and Managing Director of ANNEXI-STRAYLINE, a start-up focused on the practical application of proven High Integrity technologies to mainstream software, particularly in large-scale cloud (SaaS) and IoT applications. Richard is an evangelist for the safety and maintainability provided by the Ada language, and is a member of the ISO Ada Rapporteur Group, tasked with the ongoing development of the Ada language.
Richard began programming at an early age, with a particular interest in building practical, user-friendly software for non-technical users. Richard spent time studying higher-level design processes, and is working to bring the craftsmanship and diligence common in other creative and technical professions to the software industry, with the goal of promoting a disciplined, mature, and maintainability-oriented approach to mainstream software engineering. Richard holds an Honors Bachelor of Architecture with Distinction from the University of Toronto.
Conference DayTue 17 NovDisplayed time zone: Central Time (US & Canada) change
09:00 - 13:00
|Tuesday Keynote: ZeroMQ - The world-saving superhero sockets of the networking world|
|Tuesday early coffee break|
|XERIS/APEX: Hyperscaling with Ada|
|Challenges and lessons learned introducing Fuse, an evolving open source technology, into an established legacy Ada and C++ program|
|Tuesday later coffee break|
|Productive Parallel Programming with Parsl|
Kyle ChardUniversity of Chicago
|Building a Culture of Safe and Performant Systems with the Rust Programming Language|
James MunnsFerrous Systems
|Tuesday Panel: Language support for parallel and distributed computing|