JEOPARD
The JEOPARD project will develop a platform independent software development interface for complex
multicore systems, including SMP. The interface will be based on existing technologies including Java, the
Real-Time Specification for Java (JSR 1 and JSR 282) and Safety-Critical Java (JSR 302), which provide a
good foundation for the development of complex, safe, realtime systems, but do not yet provide particular
support for multicore systems. Even worse, some technologies can not support more than one processor,
making it impossible to develop applications that scale with the number of processors available on current and
future advanced multicore systems.
The JEOPARD consortium covers all layers of a multicore embedded system. At the processor level,
virtualised SMP architectures and advanced NUMA architectures are addressed. At the OS level, required OS
scheduling facilities and low-level OS APIs will be provided for the virtual machine, or low-level native
application code. JEOPARD will also analyse the impact of NUMA on OS facilities and how FPGA-based
components can integrate with OS-supported components. At the Java virtual machine level, a realtime Java
implementation that supports predictable execution of all Java operations will be extended to maintain
predictable execution on multiple parallel processors, including real-time memory management, and support
for efficient synchronisation mechanisms and compiler support for parallel systems. At the API layer, a
powerful interface will be provided that provides control over and efficient use of available processor
resources. Tools for static analysis of parallel applications will also be developed for detection of runtime
errors. The project includes close involvement and validation by industry user partners and strong cooperation
with standardisation authorities aiming at a POSIX-like standard for multicore systems both at the OS level
and Java level.