Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Version Travis status Codacy grade


Real-Time Utilities for EPICS IOCs on Multi-Core Linux

The EPICS Multi-Core Utilities library contains tools that allow tweaking of real-time parameters for EPICS IOC threads running on multi-core processors under the Linux operating system.

These tools are intended to set up multi-core IOCs for fast controllers, by:

  • Confining either parts or the complete EPICS IOC onto a subset of the available cores, allowing hard real-time applications and threads to run on dedicated cores.

  • Changing priorities of callback, driver or communication threads with respect to database processing.

  • Selecting real-time scheduling policy (FIFO or Round-Robin) for selected threads.

  • Locking the IOC process virtual memory into RAM to avoid swapping.


  • Linux operating system
  • EPICS BASE 3.15 or above (EPICS 7 supported).


  • Unpack the distribution tar or check out the source tree
  • Run make
  • To generate a minimal example IOC, run make -C example.


To use the Multi-Core Utilities in an IOC application tree, you have to add a definition to .../configure/RELEASE or RELEASE.local that points to the location of the mcoreutils module.

In the directory that builds your IOC binary, the Makefile has to make sure the IOC is only built for Linux. Then add the dbd file and the Library, e.g.:

PROD_IOC_Linux = mcutest
mcutest_DBD += mcoreutils.dbd
mcutest_LIBS += mcoreutils


Complete documentation available at