Home »


Project Overview


NanoStreams co-designs a heterogeneous micro-server and a software stack that address the unique challenges of analytical workloads on data streams. These workloads arise from applications in real-time data analytics. To this end, NanoStreams brings together the design principles of application-specific heterogeneous many-cores from the embedded systems domain, with HPC software technology for parallelisation, acceleration and scale-out.

The MPSoC technology that underpins the NanoStreams micro-server is an amalgam of RISC cores and nano-cores, a new class of programmable accelerator fabric. Novel automatic compiler generation and parameterisation technology enables low-effort programming and integration of nano-cores into many-core accelerators. The proposed heterogeneous Analytics-on-Chip engine forms the backbone of the NanoStreams micro-server, which further leverages multi-core RISC hosts for low-latency event processing, a hybrid DRAM-NVRAM memory system and a non-cache-coherent, scale-out architecture to achieve high energy-efficiency.

The software stack of NanoStreams is rooted in domain-specific languages for stream processing, which the project implements with a dataflow execution model. The stream processing kernels operate on data that resides in-memory, either in column-oriented

stores,  or in raw data structures, The language runtime system uses proportional-share scheduling and performance isolation to guarantee quality-of-service for concurrent data streams. Performance isolation entails both core isolation and distribution of memory channels and bandwidth among streams to sustain data access locality.  To support emerging workloads with rapidly increasing demand for in-memory data processing, the NanoStreams micro-server leverages NVRAM technology, which is made accessible to the runtime system as byte-addressable DRAM, for user-level object allocation and layout.

NanoStreams will deliver a real-silicon prototype, using accelerators built  with the Xilinx Zynq and multi-core hosts, initially based on 32-bit and later on 64-bit ARM Cortex processors. The quantitative objective of NanoStreams is to sustain analytical

response time that is comparable to state-of-the-art heavy-duty servers, while improving system energy-efficiency by at least an order of magnitude. NanoStreams will demonstrate these tangible benefits with use cases in pre-trade risk analytics, ICU patient monitoring and social graph analytics.