COMIC Coherent Shared Memory Interface for Cell BE
Overview
The Cell BE processor is a heterogeneous multicore that contains one PowerPC Processor Element (PPE) and eight Synergistic Processor Elements (SPEs). Each SPE has a small software-managed local store. Applications must explicitly control all DMA transfers of code and data between the SPE local stores and the main memory, and they must perform any coherence actions required for data transferred. The need for explicit memory management, together with the limited size of the SPE local stores, makes it challenging to program the Cell BE and achieve high performance.
COMIC (A COherent shared Memory Interface for Cell BE) is a runtime system that might solve above problems. It provides the program with an illusion of a globally shared memory, in which the PPE and each of the SPEs can access any shared data item, without the programmer having to worry about where the data is, or how to obtain it.
COMIC is implemented entirely in software with the aid of userlevel libraries provided by the Cell SDK. For each read or write operation in SPE code, a COMIC runtime function is inserted to check whether the data is available in its local store, and to automatically fetch it if it is not. We propose a memory consistency model and a programming model for COMIC, in which the management of synchronization and coherence is centralized in the PPE.
It is necessary to build your parallel program with COMIC on a Cell BE machine (Cell Blade or PlayStation 3). COMIC is an API (library) written in C.
Publications
Please use the citation below to reference COMIC.
- [PACT] Jaejin Lee, Sangmin Seo, Chihun Kim, Junghyun Kim, Posung Chun, Zehra Sura, Jungwon Kim, and SangYong Han. COMIC: A Coherent Shared Memory Interface for Cell BE. PACT ’08: Proceedings of the 17th ACM/IEEE/IFIP International Conference on Parallel Architectures and Compilation Techniques, pp. 303—314, Toronto, Canada, October 2008, DOI: 10.1145/1454115.14541.
Tested Platforms
- Cell Blade QS21 / Red Hat Enterprise Linux Server 5.1
- PlayStation 3 / Fedora 7
- You need the following software to use COMIC
- Cell SDK 3.0
- IBM XL C/C++ for Multicore Acceleration for Linux, V9.0
Download
If you would like to download the COMIC, please email us.
Manual
- COMIC API Functions
- COMIC examples
- A simple parallel loop
- Jacobi: omp, COMIC_no_opt, COMIC_opt
Contributors
- Current: Jaejin Lee, Jun Lee, and Sangmin Seo
- Past: Posung Chun, Chihun Kim, Junghyun Kim, and Jungwon Kim
Contact and Bug Report
License
Copyright (C) 2008 Seoul National University. All rights reserved. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Contact information: Advanced Compiler Research Laboratory School of Computer Science and Engineering Seoul National University, Seoul 151-744, Korea https://thunder.snu.ac.kr Contributors: Sangmin Seo, Chihun Kim, Posung Chun, Jun Lee, Junghyun Kim, Jungwon Kim, and Jaejin Lee