Posts Tagged ‘many-core’

Everything You Always Wanted to Know about Synchronization but Were Afraid to Ask

It’s just one day before traveling to the US to present “Everything You Always Wanted to Know about Synchronization but Were Afraid to Ask” in the the 24th ACM Symposium on Operating Systems Principles (SOSP). I am really glad that I will have the opportunity to share the knowledge we collected in over a year of hard work. You can get a copy of the paper here.

This publication is about understanding the low-level details of the hardware (e.g., the cache-coherence protocol) and how they affect synchronization (and sharing of data in general) in software. If you want to better understand your hardware, to optimize your system/application, or to understand why something scales or does not scale, I believe you will be interested in reading the paper.

We also published the software we developed to perform this study as the SSYNC synchronization suite (SSYNC stands for Simple Synchronization). If the information in the paper is not sufficient for your needs, or if you have a hardware platform that is not very similar with the ones we used in the paper, then you can use the tools and libraries of SSYNC to evaluate your own platform.

SSYNC is available at and contains:

  • ccbench: a tool for measuring the latencies of the hardware cache-coherence protocol
  • libslock: a library with cross-platform implementations of various locking algorithms
  • libssmp: a message passing library optimized for x86, SPARC, and Tilera platforms
  • TM2C: the first software Transactional Memory for Many-Cores

I hope you will enjoy reading the paper 🙂

FPGA as a processor?

I just read an article about some research being done on University of Glasgow. Researchers placed/programmed (more than) 1000-cores on an FPGA (about FPGA). Each core is supposed to have each own dedicated memory (it is not a technical article, so not many technical details were given). According to the article:

The researchers then used the chip to process an algorithm which is central to the MPEG movie format – used in YouTube videos – at a speed of five gigabytes per second: around 20 times faster than current top-end desktop computers.

You can read the article here.