The Single-chip Cloud Computer is a 48-core concept vehicle created by Intel Labs and used by hundreds of researchers worldwide for many-core software innovation. Software Managed Coherence (SMC) for SCC provides a shared virtual memory space for processor cores in the SCC. The SMC research software explores solutions to several many-core challenges. First, it is becoming more difficult to design and verify efficient hardware memory coherence for many-core processors as core counts scale to 10s-100s of cores. Also, when multiple applications run on a single many-core chip it may require coherence support on the cores they are running on, but likely not between the applications. SMC enables dynamically reconfigurable coherence domains which is difficult to support with a hardware-only implementation. Lastly, hardware coherence is complex for heterogeneous platforms like combined CPU-GPU systems. Software Managed Coherence could make better use of silicon, efficiently support emerging applications, dynamically reconfigure coherence domain, and most importantly, still be able to provide performance comparable to hardware coherence.
How to use it
SMC is open source and is provided as source code our collaborators conducting research on the SCC. Before using SMC, build an installable kernel module called smcmprotect.ko (which is based on mprotect) and a user library called libsmc.a. Then, install the kernel module on each SCC core you plan to use. Link your SMC program with libsmc.a. Then, run it on one or more cores. The SMC download provides some sample Perl scripts for loading SMC programs on the cores.
Software Managed Coherence for Single Chip Cloud Computer
For more complete information about compiler optimizations, see our Optimization Notice.