The VINEYARD project will develop novel servers based on programmable dataflow accelerators that can be customized based on the data-centre’s application requirements. These programmable dataflow accelerators will be used not only to increase the performance of servers but also to reduce the energy consumption in data centres.

Furthermore, VINEYARD will develop a programming framework that will hide the complexity of programming heterogeneous systems while at the same time providing the optimized performance of customized and heterogeneous architectures.

VINEYARD will also develop a new programming framework that seamlessly leverage workload-specific accelerators vbased on the application requirements. In this suite, the user works with familiar programming frameworks (i.e. Spark) while a run-time manager selects appropriate accelerators based on application requirements such as execution time and power consumption.

Finally, VINEYARD will provide the necessary middleware that binds together servers with accelerators. Along this task, VINEYARD will consider both physical servers and virtual machines (VMs). The middleware also handles QoS concerns that arise with the shared use of the accelerators.


In this way, the VINEYARD project will develop an integrated platform for heterogeneous accelerator-based servers.
The VINEYARD platform will include both the hardware components (customized accelerators) and a software framework, which consists of two novel components: (i) a programming framework that integrates familiar programming models into heterogeneous systems, and (ii) a middleware layer that supports this heterogeneity in virtualized data centres.



The figure depicts the high level diagram of the VINEYARD framework. Applications that are targeting heterogeneous data centres using traditional servers or micro-servers are programmed using traditional data centre frameworks such as Spark and the widely used data management technologies such as SQL (both OLTP and OLAP for operational databases and data warehouses), NoSQL (a key value data store), and Complex Event Processing (CEP).