Faking it

Diomidis Spinellis*

*Corresponding author for this work

Research output: Contribution to journalArticleScientific


CPUs are no longer getting faster. Instead, CPU manufacturers now package multiple cores in each CPU and ask us developers to put them to good use. Writing parallel code using multiple threads or even a higher-level API is a fiendishly difficult task. An alternative approach involves using a programming language that can easily exploit multiple cores, but it requires substantial effort. A third way involves faking your application's multicore-handling dexterity by handing over this responsibility. At the highest level, it's easy to put multiple cores to work if your application serves Web requests (pass them to a Web application server) or dishes out SQL statements (via a commercial RDBMS). Another high-level way to utilize multiple cores is to let the operating system do it for you by splitting your processing among independent processes. You can do this by using pipelines of communicating processes, by splitting the work among many instances of the same process with GNU parallel, or by parallelizing independent work items with make-j. At the application level, you can do the same by employing the map-reduce and filter-reduce techniques.

Original languageEnglish
Article number5984801
Pages (from-to)96-95
JournalIEEE Software
Issue number5
Publication statusPublished - 2011
Externally publishedYes


  • concurrency
  • multicore
  • parallelism


Dive into the research topics of 'Faking it'. Together they form a unique fingerprint.

Cite this