text:
C++ atomics, lock-free libraries and tools, and the memory model
A collection of readings and research on C++ memory model and related concurrency/synchronization concepts.
Software: Data Structures
https://www.justsoftwaresolutions.co.uk/threading/implementing_dekkers_algorithm_with_fences.html
https://www.justsoftwaresolutions.co.uk/threading/memory_models_and_synchronization.html
https://www.justsoftwaresolutions.co.uk/threading/intel-memory-ordering-and-c++-memory-model.html
https://www.justsoftwaresolutions.co.uk/threading/intel-and-amd-memory-ordering-defined.html
https://www.justsoftwaresolutions.co.uk/threading/non_blocking_lock_free_and_wait_free.html
Bartosz Milewski
http://bartoszmilewski.com/2008/11/11/who-ordered-sequential-consistency/
http://bartoszmilewski.com/2008/12/01/c-atomics-and-memory-ordering/
https://corensic.wordpress.com/category/sequential-consistency/
Concurrency Freaks
http://concurrencyfreaks.blogspot.com/
https://github.com/pramalhe/ConcurrencyFreaks/
Comparison: Lockless programming with atomics in C++ 11 vs. mutex and RW-locks
https://www.arangodb.com/2015/02/comparing-atomic-mutex-rwlocks/
Fabian "ryg" Giesen
Cache coherency primer - https://fgiesen.wordpress.com/2014/07/07/cache-coherency/
Fast Bounded-Concurrency Hash Tables
https://backtrace.io/blog/backtrace/workload-specialization/
Jeff Preshing
http://preshing.com/20111118/locks-arent-slow-lock-contention-is/
http://preshing.com/20120515/memory-reordering-caught-in-the-act/
http://preshing.com/20120612/an-introduction-to-lock-free-programming/
http://preshing.com/20120625/memory-ordering-at-compile-time/
http://preshing.com/20120710/memory-barriers-are-like-source-control-operations/
http://preshing.com/20120913/acquire-and-release-semantics/
http://preshing.com/20120930/weak-vs-strong-memory-models/
http://preshing.com/20121019/this-is-why-they-call-it-a-weakly-ordered-cpu/
http://preshing.com/20130505/introducing-mintomic-a-small-portable-lock-free-api/
http://preshing.com/20130529/a-lock-free-linear-search/
http://preshing.com/20130605/the-worlds-simplest-lock-free-hash-table/
http://preshing.com/20130618/atomic-vs-non-atomic-operations
http://preshing.com/20130702/the-happens-before-relation/
http://preshing.com/20130823/the-synchronizes-with-relation/
http://preshing.com/20130922/acquire-and-release-fences/
http://preshing.com/20130930/double-checked-locking-is-fixed-in-cpp11/
http://preshing.com/20131125/acquire-and-release-fences-dont-work-the-way-youd-expect/
http://preshing.com/20140709/the-purpose-of-memory_order_consume-in-cpp11/
http://preshing.com/20141124/fixing-gccs-implementation-of-memory_order_consume/
http://preshing.com/20150402/you-can-do-any-kind-of-atomic-read-modify-write-operation/
John Regehr
Proposal to Stress-Test Implementations of C++11 Concurrency - https://blog.regehr.org/archives/658
Race Condition vs. Data Race - https://blog.regehr.org/archives/490
Simplest Program Showing the Difference Between Sequential Consistency and TSO - https://blog.regehr.org/archives/898
John Wickerson
Memory Consistency Models, and how to compare them automatically - https://johnwickerson.wordpress.com/2016/11/11/comparing-memory-consistency-models/
Ribbon Diagrams for Weak Memory - https://johnwickerson.wordpress.com/2017/04/17/ribbon-diagrams-for-weak-memory/
Kukuryku Hub Series
http://kukuruku.co/hub/cpp/lock-free-data-structures-introduction
http://kukuruku.co/hub/cpp/lock-free-data-structures-basics-atomicity-and-atomic-primitives
http://kukuruku.co/hub/cpp/lock-free-data-structures-memory-model-part-3
http://kukuruku.co/hub/cpp/lock-free-data-structures-the-inside-memory-management-schemes
http://kukuruku.co/hub/cpp/lock-free-data-structures-the-inside-rcu
http://kukuruku.co/hub/cpp/lock-free-data-structures-the-evolution-of-a-stack
http://kukuruku.co/hub/cpp/lock-free-data-structures-yet-another-treatise
http://kukuruku.co/hub/cpp/lock-free-data-structures-exploring-queues
"Moody Camel" Series:
http://moodycamel.com/blog/2013/a-fast-lock-free-queue-for-c++
http://moodycamel.com/blog/2014/a-fast-general-purpose-lock-free-queue-for-c++
http://moodycamel.com/blog/2014/detailed-design-of-a-lock-free-queue
http://moodycamel.com/blog/2014/solving-the-aba-problem-for-lock-free-free-lists
PSA: you should use WTF::Lock and WTF::Condition instead of WTF::SpinLock, WTF::Mutex, WTF::ThreadCondition, std::mutex, std::condition_variable, or std::condition_variable_any
http://permalink.gmane.org/gmane.os.opendarwin.webkit.devel/27578
https://lists.webkit.org/pipermail/webkit-dev/2015-August/027615.html
What's up with compare_exchange_weak anyway? - https://blogs.msdn.microsoft.com/oldnewthing/20180329-00/?p=98375
How do I choose between the strong and weak versions of compare-exchange? - https://blogs.msdn.microsoft.com/oldnewthing/20180330-00/?p=98395
The difficulty of lock-free programming: a bug in lockfree stack
http://mdf356.blogspot.com/2015/06/the-difficulty-of-lock-free-programming.html
The x86 Memory Model
http://www.msully.net/blog/2015/02/25/the-x86-memory-model/
Trip Report: Ad-Hoc Meeting on Threads in C++
http://www.artima.com/cppsource/threads_meeting.html
Compiler optimisations and relaxed memory consistency models
2017 PhD dissertation; Robin Morisset
http://www.theses.fr/en/2017PSLEE050
https://tel.archives-ouvertes.fr/tel-01823521/
https://www.di.ens.fr/~zappa/students/morisset-phd.pdf
Correct Compilation of Relaxed Memory Concurrency
2019 PhD Dissertation; Soham Chakraborty
http://plv.mpi-sws.org/soham/thesis/
https://kluedo.ub.uni-kl.de/frontdoor/index/index/docId/5697
Designing Memory Consistency Models For Shared-Memory Multiprocessors
1993 PhD dissertation; Sarita V. Adve
ftp://ftp.cs.wisc.edu/markhill/Theses/sarita_adve.pdf
http://digital.library.wisc.edu/1793/59824
Memory Consistency Models for Shared-Memory Multiprocessors
1995 PhD dissertation; Kourosh Gharachorloo
http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-95-9.pdf
The C11 and C++11 Concurrency Model
2014 PhD dissertation; Mark Batty
https://www.cs.kent.ac.uk/people/staff/mjb211/docs/toc.pdf
2015 SIGPLAN John C. Reynolds Doctoral Dissertation award citation: "Mark Batty's dissertation makes significant contributions to the understanding of memory models for C and C++. The ISO C++ committee proposed a design for C and C++ concurrency that was not up to the task of capturing a realistic relaxed-memory concurrency model. Batty's work uncovered a number of subtle and serious flaws in the design, and produced an improved design in completely rigorous and machine-checked mathematics. Using software tools to explore the consequences of the design, derived directly from the mathematics, it showed that it has the desired behavior on many examples, and developed mechanized proofs that the design meets some of the original goals, showing that for programs in various subsets of the language one can reason in simpler models. The standards committee have adopted this work in their C11, C++11, and C++14 standards. The members of the award committee were impressed with the quality of the work, the impact it has had on the standardization process for C++, and the clarity of the presentation."
The Semantics of Multicopy Atomic ARMv8 and RISC-V
2019 PhD dissertation; Christopher Pulte
https://doi.org/10.17863/CAM.39379
https://www.repository.cam.ac.uk/handle/1810/292229
Papers - Data Structures
Practical lock freedom
2004 Cambridge University Technical Report UCAM-CL-TR-579; Keir Fraser
https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-579.pdf
Practical lock-free data structures
https://www.cl.cam.ac.uk/research/srg/netos/projects/archive/lock-free/
Systems programming: Coping with parallelism
1986 Technical report, IBM Almaden Research Center; R. Treiber
http://domino.research.ibm.com/library/cyberdig.nsf/papers/58319A2ED2B1078985257003004617EF/$File/rj5118.pdf
Includes Treiber's lock-free stack.
References: Synchrobench 30+ data structures papers
https://github.com/gramoli/synchrobench#data-structures
Evaluated in Synchrobench: V. Gramoli. More than You Ever Wanted to Know about Synchronization. PPoPP 2015
https://sites.google.com/site/synchrobench/
References: CDS C++ library data structures
(lock-free lock-free stack, queues, unordered set/map, skip-list)
https://github.com/khizmax/libcds#references
Papers - Implementation
Common Compiler Optimisations are Invalid in the C11 Memory Model and what we can do about it
POPL 2015
Viktor Vafeiadis, Thibaut Balabonski, Soham Chakraborty, Robin Morisset, Francesco Zappa Nardelli
http://www.di.ens.fr/~zappa/readings/c11comp.pdf
N4455: No Sane Compiler Would Optimize Atomics
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4455.html
Partially Redundant Fence Elimination for x86, ARM, and Power Processors
Robin Morisset, Francesco Zappa Nardelli
https://conf.researchr.org/event/CC-2017/cc-2017-papers-partially-redundant-fence-elimination-for-x86-arm-and-power-processors
Papers - Memory Model
A Promising Semantics for Relaxed-Memory Concurrency
Jeehoon Kang, Chung-Kil Hur, Ori Lahav, Viktor Vafeiadis, Derek Dreyer
https://sf.snu.ac.kr/promise-concurrency/
AutoMO: Automatic Inference of Memory Order Parameters for C/C++11
SPLASH 2015 OOPSLA
http://plrg.eecs.uci.edu/publications/oopsla15inference.pdf
Bridging the Gap Between Programming Languages and Hardware Weak Memory Models
Anton Podkopaev, Ori Lahav, Viktor Vafeiadis
https://popl19.sigplan.org/event/popl-2019-research-papers-bridging-the-gap-between-programming-languages-and-hardware-weak-memory-models
C++ Memory Model
2012; Martin Kempf
https://wiki.ifs.hsr.ch/SemProgAnTr/TopicsFallSemester2012
https://wiki.ifs.hsr.ch/SemProgAnTr/files/CppMemoryModel_26_12_12.pdf
Concurrency memory model compiler consequences
Foundations of the C++ Concurrency Memory Model
PLDI 2008; Hans-J. Boehm and Sarita V. Adve
http://rsim.cs.illinois.edu/Pubs/08PLDI.pdf
Memory Barriers: a Hardware View for Software Hackers
2010; Paul E. McKenney
http://www.rdrop.com/users/paulmck/scalability/paper/whymb.2010.07.23a.pdf
Memory Model = Instruction Reordering + Store Atomicity
ACM SIGARCH Computer Architecture News 34(2) 2006
Arvind and J.-W. Maessen
http://csg.csail.mit.edu/pubs/memos/Memo-493/memo-493.pdf
2006 MSR talk: https://www.microsoft.com/en-us/research/video/memory-model-instruction-reordering-store-atomicity/
Memory Models for C/C++ Programmers
2018; Manuel Pöter, Jesper Larsson Träff
Memory Models: A Case for Rethinking Parallel Languages and Hardware
CACM 2010
Sarita V. Adve, Hans-J. Boehm
http://cacm.acm.org/magazines/2010/8/96610-memory-models-a-case-for-rethinking-parallel-languages-and-hardware/fulltext
On Library Correctness under Weak Memory Consistency
Azalea Raad, Marko Doko, Lovro Rožić, Ori Lahav, Viktor Vafeiadis
https://popl19.sigplan.org/event/popl-2019-research-papers-on-library-correctness-under-weak-memory-consistency
Programming Languages & Verification – MPI SWS
https://www.mpi-sws.org/research-areas/programming-languages-and-verification/
2018 - Effective stateless model checking for C/C++ concurrency - http://plv.mpi-sws.org/rcmc/
2017 - Formalizing the Concurrency Semantics of an LLVM Fragment - http://plv.mpi-sws.org/llvmcs/
2016 - Explaining Relaxed Memory Models with Program Transformations - http://plv.mpi-sws.org/trns/
2016 - Validating Optimizations of Concurrent C/C++ Programs - http://plv.mpi-sws.org/validc/
2015 - Reasoning about C11 Program Transformations - http://plv.mpi-sws.org/c11comp/
Shared Memory Consistency Models: A Tutorial
IEEE Computer 29(12) 1996
Sarita V. Adve, Kourosh Gharachorloo
http://rsim.cs.illinois.edu/~sadve/Publications/computer96.pdf
Simple and Efficient Semantics for Concurrent Programming Languages
http://web.cs.ucla.edu/~todd/research/memmodels.html
Synthesizing Memory Models from Framework Sketches and Litmus Tests
PLDI 2017
James Bornholt and Emina Torlak
MemSynth: Synthesis-Aided Memory Model Development
http://memsynth.uwplse.org/
The Silently Shifting Semicolon
SNAPL 2015
Daniel Marino, Todd D. Millstein, Madanlal Musuvathi, Satish Narayanasamy, Abhayendra Singh, Madan Musuvathi
https://www.microsoft.com/en-us/research/publication/the-silently-shifting-semicolon/
http://web.cs.ucla.edu/~todd/research/snapl15.pdf
Proposes the designation "Weak DRF0 (WDRF0)" for the C++ memory model: "C/C++ has settled for a memory model weaker than DRF0, which we call Weak DRF0 (WDRF0). DRF programs are not guaranteed SC semantics in WDRF0. To get SC, programmers have to additionally avoid the use of the so-called low-level atomic primitives. The weak semantics of DRF programs in C++ is similar in complexity to the semantics of non-DRF programs in Java."
Threads Basics
HP Labs Technical Report 2009-259; Hans-J. Boehm
First Published: Nov. 17, 2008; Last revised: January 16, 2011
http://www.hboehm.info/c++mm/threadsintro.html
Threads Cannot be Implemented as a Library
PLDI 2005; Hans-J. Boehm
http://www.hpl.hp.com/techreports/2004/HPL-2004-209.pdf
http://www.hboehm.info/misc_slides/pldi05_threads.pdf
LtU: http://lambda-the-ultimate.org/node/950
Verifying C11 Programs Operationally
Principles and Practice of Parallel Programming (PPoPP) 2019
Simon Doherty, Brijesh Dongol, Heike Wehrheim, John Derrick
https://ppopp19.sigplan.org/event/ppopp-2019-papers-verifying-c11-programs-operationally
x86-TSO: A Rigorous and Usable Programmer's Model for x86 Multiprocessors
Peter Sewell, Susmit Sarkar, Scott Owens, Francesco Zappa Nardelli, Magnus O. Myreen
https://www.cl.cam.ac.uk/~pes20/weakmemory/cacm.pdf
You Don't Know Jack about Shared Variables or Memory Models: Data Races are Evil
CACM 2012, ACM Queue 2011
Hans-J. Boehm, Sarita V. Adve
https://queue.acm.org/detail.cfm?id=2088916
1024cores
http://www.1024cores.net/
http://www.1024cores.net/home/lock-free-algorithms
C++11 Language Extensions — Concurrency
https://isocpp.org/wiki/faq/cpp11-language-concurrency
C++11 Standard Library Extensions — Concurrency
https://isocpp.org/wiki/faq/cpp11-library-concurrency
C/C++11 mappings to processors
C/C++11 atomic operations to x86, PowerPC, ARMv7, ARMv8, and Itanium instruction sequences
https://www.cl.cam.ac.uk/~pes20/cpp/cpp0xmappings.html
GCC Wiki - Atomic: https://gcc.gnu.org/wiki/Atomic/
GCC Wiki - The C++11 Memory Model and GCC: https://gcc.gnu.org/wiki/Atomic/GCCMM
glibc wiki: Concurrency
https://sourceware.org/glibc/wiki/Concurrency
Linux kernel memory barriers
https://www.kernel.org/doc/Documentation/memory-barriers.txt
LLVM Atomic Instructions and Concurrency Guide
http://llvm.org/docs/Atomics.html
Memory model - http://en.cppreference.com/w/cpp/language/memory_model
N1276: A Less Formal Explanation of the Proposed C++ Concurrency Memory Model
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1276.htm
Programming with Threads: Questions Frequently Asked by C and C++ Programmers
Hans-J. Boehm & Paul McKenney
http://www.hboehm.info/c++mm/user-faq.html
REMS: Rigorous Engineering for Mainstream Systems
https://www.cl.cam.ac.uk/~pes20/rems/
Relaxed-Memory Concurrency
https://www.cl.cam.ac.uk/~pes20/weakmemory/
Some notes on lock-free and wait-free algorithms
http://www.rossbencina.com/code/lockfree
The Check Tool Suite: Programmability, Correctness and Security Issues in Heterogeneous Multiprocessor and Mobile Systems
Martonosi Research Group - http://mrmgroup.cs.princeton.edu/
http://check.cs.princeton.edu/
Threads and memory model for C++
http://hboehm.info/c++mm/
What every systems programmer should know about lockless concurrency
2018; Matt Kline
https://assets.bitbashing.io/papers/lockless.pdf
Why the "volatile" type class should not be used
https://www.kernel.org/doc/Documentation/volatile-considered-harmful.txt
A Primer on Memory Consistency and Cache Coherence, Second Edition
Synthesis Lectures on Computer Architecture 15:1 (2020)
Vijay Nagarajan, Daniel J. Sorin, Mark D. Hill, David A. Wood
https://doi.org/10.2200/S00962ED2V01Y201910CAC049
Is Parallel Programming Hard, And If So, What Can You Do About It?
Paul E. McKenney
https://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html
Advanced Computer Architecture - University of Utah - CS/ECE 7810
http://www.eng.utah.edu/~cs7810/
Lecture 11: Consistency Models: Slides (pdf)
YouTube Video 68 (Example multi-threaded programs and sequentially consistent results)
YouTube Video 69 (Hardware support for sequential consistency, example of how SC is violated if program order is violated)
YouTube Video 70 (Example on how a coherence protocol may violate write atomicity and sequential consistency, hardware support for sequential consistency, safe optimizations to speed up the hardware)
YouTube Video 71 (A hardware-software approach to improving performance with relaxed consistency models and fences)
Parallel Computer Architecture - CMU - 18-742
http://www.archive.ece.cmu.edu/~ece742/f12/doku.php?id=lectures
https://www.youtube.com/playlist?list=PLSEZzvupP7hNjq3Tuv2hiE5VvR-WRYoW4
act: automagic compiler tormentor
act is a toolbox for finding concurrency memory model discrepancies between C code and its compiled assembly.
It can use memalloy as a test-case generator, and generates litmus tests that can be used with herd7.
https://github.com/MattWindsor91/act/
CDSChecker: A Model Checker for C11 and C++11 Atomics
http://demsky.eecs.uci.edu/c11modelchecker.html
http://plrg.eecs.uci.edu/publications/c11modelcheck.pdf
CppMem: Interactive C/C++ memory model
http://svr-pes20-cppmem.cl.cam.ac.uk/cppmem/
https://www.modernescpp.com/index.php/cppmem-an-overview
The sofware suite diy provides tools to design and test weak memory models. It handles ARMv8 (AArch64), ARMv7 (ARM), Power (PPC) and X86 assembly models, plus a generic (LISA) assembly language.
http://diy.inria.fr/
herd, a memory model simulator
http://diy.inria.fr/herd/
http://diy.inria.fr/doc/herd.html
https://github.com/herd/herdtools
https://github.com/herd/herdtools7
MemSynth: An advanced automated reasoning tool for memory consistency model specifications.
https://github.com/uwplse/memsynth
Build an x86 memory model!
https://demo.memsynth.org/
Relacy Race Detector
http://www.1024cores.net/home/relacy-race-detector
RMEM
a tool for exploring the relaxed-memory concurrency behaviour allowed by the instruction set architectures
ARM, POWER, RISC-V, x86
help page: http://www.cl.cam.ac.uk/~sf502/regressions/rmem/help.html
web interface: http://www.cl.cam.ac.uk/users/pes20/rmem/
Synchrobench
https://github.com/gramoli/synchrobench
A benchmark to compare synchronization techniques for multicore programming
Software - Data Structures
ASCYLIB
https://github.com/LPD-EPFL/ASCYLIB
ASCYLIB is a concurrent-search data-structure library with over 30 implementantions of linked lists, hash tables, skip lists, and binary search trees.
Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures
ASPLOS 2015
Tudor David, Rachid Guerraoui, Vasileios Trigonakis
http://infoscience.epfl.ch/record/207109/files/ascy_asplos15.pdf
Adrian Colyer's "The Morning Paper" summary: http://blog.acolyer.org/2015/04/17/asynchronized-concurrency-the-secret-to-scaling-concurrent-search-data-structures/
Boost.Lockfree
http://www.boost.org/doc/libs/release/doc/html/lockfree.html
CDS C++ library
https://github.com/khizmax/libcds
The Concurrent Data Structures (CDS) library is a collection of concurrent containers that don't require external (manual) synchronization for shared access, and safe memory reclamation (SMR) algorithms like Hazard Pointer and user-space RCU. CDS is mostly header-only template library. Only SMR core implementation is segregated to .so/.dll file.
ConcurrencyFreaks
https://github.com/pramalhe/ConcurrencyFreaks
A library of concurrent data structures and synchronization mechanisms.
Concurrency Kit
Concurrency primitives, safe memory reclamation mechanisms and non-blocking (including lock-free) data structures designed to aid in the research, design and implementation of high performance concurrent systems.
https://github.com/concurrencykit/ck
Concurrent data structures
Compilation of concurrent data structures with at least lock-free or wait-free properties.
https://github.com/jfuentes/concurrent-data-structures
moodycamel::ConcurrentQueue (MPMC): https://github.com/cameron314/concurrentqueue
moodycamel::ReaderWriterQueue (SPSC): SPSC: https://github.com/cameron314/readerwriterqueue
xenium: a collection of concurrent data structures and memory reclamation algorithms (a header-only library)
https://github.com/mpoeter/xenium
Effective Memory Reclamation for Lock-Free Data Structures in C++
2018 Master's thesis; Manuel Pöter
http://katalog.ub.tuwien.ac.at/AC14552708
http://www.ub.tuwien.ac.at/dipl/VL/51367.pdf
https://github.com/mpoeter/emr
COMP 522: Multicore Computing - Presentations
https://www.cs.rice.edu/~johnmc/comp522/lecture-notes/
Concurrency Kit talks
http://concurrencykit.org/slides.html
Lock-Free Algorithms: An Introduction, Introduction to Lock-Free Algorithms: Through a case study, Safe Memory Reclamation: Epoch Reclamation, Towards accessible non-blocking technology for C, Fast Bounded-Concurrency Hash Tables
Memory Management in C++14 and Beyond
Chicago C++ Meetup; July 7, 2015
Info: http://www.meetup.com/Chicago-C-CPP-Users-Group/events/223318263/
Slides: http://ccug.chicago.il.us/Spertus7jul2015.pdf
Modern concurrent code in C/C++
GNU Tools Cauldron 2015; Torvald Riegel
https://gcc.gnu.org/wiki/cauldron2015?action=AttachFile&do=get&target=Torvald+Riegel_+Modern+concurrent+code+in+C.pdf
Updating glibc concurrency
https://gcc.gnu.org/wiki/cauldron2015?action=AttachFile&do=get&target=Torvald+Riegel_+Updating+glibc+concurrency.pdf
Sarita Adve's Research Group - Talks
http://rsim.cs.illinois.edu/pubs.html#talks
Atomics, Locks, and Tasks
CppCon 2019; Rainer Grimm
part 1: https://www.youtube.com/watch?v=o0i2fc0Keo8
part 2: https://www.youtube.com/watch?v=_eaB69ta_ig
Concurrency in C++20 and Beyond
CppCon 2019; Anthony Williams
https://www.youtube.com/watch?v=jozHW_B3D4U
The C++20 Synchronization Library
Bryce Adelstein Lelbach
CppCon 2019
https://www.youtube.com/watch?v=Zcqwb3CWqs4
Meeting C++ 2019
https://www.youtube.com/watch?v=zoMZAV6FEbc
https://meetingcpp.com/mcpp/slides/2019/cpp20_synchronization_library__r5__2019_meeting_cpp3598.pdf
https://github.com/brycelelbach/cpp20_mini_tasking_runtime
https://github.com/brycelelbach/cpp20_synchronization_library
std::atomic::wait/std::atomic::notify_*; std::atomic_ref; std::counting_semaphore; std::latch, std::barrier
The One-Decade Task: Putting std::atomic in CUDA
CppCon 2019; Olivier Giroux
https://www.youtube.com/watch?v=VogqOscJYvk
Wait-free data structures and wait-free transactions
Hydra: Distributed Computing Conference 2019; Pedro Ramalhete
https://www.youtube.com/watch?v=oDfr9w9p8XY
https://hydraconf.com/2019/talks/1jwmdzkmjcalsclwavttxk/
Weak Memory Concurrency in C/C++11
Hydra: Distributed Computing Conference 2019; Ori Lahav
https://www.youtube.com/watch?v=mOqu8vGSysc
http://www.cs.tau.ac.il/~orilahav/papers/lahav_c11.pdf
https://hydraconf.com/2019/talks/143pbdxfvijthb8rg3qk6e/
A "Post-ISA" Era in Computer Systems: Challenges and Opportunities
PLDI 2018; Margaret Martonosi
https://pldi18.sigplan.org/event/pldi-2018-pldi-invited-speakers-margaret-martonosi-talk
The C++ Execution Model
CppCon 2018; Bryce Adelstein Lelbach
https://www.youtube.com/watch?v=FJIn1YhPJJc
C++ atomics, from basic to advanced. What do they really do?
CppCon 2017; Fedor Pikus
https://youtu.be/ZQFzMfHIxng
An Interesting Lock-free Queue - Part 2 of N
CppCon 2017; Tony Van Eerd
https://github.com/CppCon/CppCon2017/tree/master/Presentations/A%20Not%20So%20Complicated%20Lockfree%20Queue
https://www.youtube.com/watch?v=HP2InVqgBFM
Coherence, Consistency, & Déjà vu: Memory Hierarchies in the Era of Specialization
HiPEAC 2017; Sarita Adve
Slides: http://rsim.cs.illinois.edu/Talks/17-hipeac.pdf
Video: https://www.youtube.com/watch?v=kjFjL_vTUWU
Multicore Synchronization: The Lesser-Known Primitives
C++Now 2017; Samy Bahra
https://www.youtube.com/watch?v=OfTy3ymDwWE
http://cppcast.com/2017/08/samy-bahra/
The speed of concurrency (is lock-free faster?)
Slides: https://github.com/CppCon/CppCon2016/tree/master/Presentations/The%20speed%20of%20concurrency%20%28is%20lock-free%20faster%29
Video: https://channel9.msdn.com/Events/CPP/CppCon-2016/CppCon-2016-Fedor-Pikus-The-speed-of-concurrency-is-lock-free-faster
Video: https://www.youtube.com/watch?v=9hJkWwHDDxs
Atomic Counters or A Lesson on Performance and Hardware Concurrency
ACCU 2015
Info: http://accu.org/index.php/conferences/accu_conference_2015/accu2015_sessions#atomic_counters_or_a_lesson_on_performance_and_hardware_concurrency
Slides: http://accu.org/content/conf2015/DetlefVollmann-Atomic%20Counters.pdf
Slides: http://www.vollmann.ch/en/presentations/atomic-counters-accu-2015.pdf
Video: http://www.infoq.com/presentations/atomic-counters
Safety: off. How not to shoot yourself in the foot with C++ atomics
Info: http://accu.org/index.php/conferences/accu_conference_2015/accu2015_sessions#safety-off._how_not_to_shoot_yourself_in_the_foot_with_c_atomics
Slides: http://accu.org/content/conf2015/AnthonyWilliams-safety_off.pdf
The Dos and Don'ts of Multithreading
Info: http://accu.org/index.php/conferences/accu_conference_2015/accu2015_sessions#the_dos_and_don_ts_of_multithreading
Slides: http://accu.org/content/conf2015/HubertMatthews-Multithreading%20Dos%20And%20Donts.pdf
Video: http://www.infoq.com/presentations/multithreading
Note: more on atomics & memory ordering compared to the NDC 2014 version.
Live Lock-Free or Deadlock (Practical Lock-free Programming)
Part 1: https://www.youtube.com/watch?v=lVBvHbJsg5Y
Part 2: https://www.youtube.com/watch?v=1obZeHnAwz4
C++11/14/17 Atomics the Deep dive: the gory details, before the story consumes you!
CppCon 2015: Michael Wong
https://www.youtube.com/watch?v=DS2m7T6NKZQ
C++ Atomics: The Sad Story of memory_order_consume: A Happy Ending At Last?
CppCon 2015: Paul E. McKenney
https://www.youtube.com/watch?v=ZrNQKpOypqU
How to make your data structures wait-free for reads
CppCon 2015; Pedro Ramalhete
https://www.youtube.com/watch?v=FtaD0maxwec
C++ in the Audio Industry
CppCon 2015; Timur Doumler
https://www.youtube.com/watch?v=boPEO2auJj4
Defining Correctness Conditions for Concurrent Objects in Multicore Architectures
ECOOP 2015; Brijesh Dongol
https://www.youtube.com/watch?v=PDQXpKE_Kao
C Concurrency: Still Tricky
LLVM Developers' Meeting 2015; Francesco Zappa Nardelli
Video HD: http://llvm.org/devmtg/2015-04/Videos/HD/Day%201/Francesco%20Zappa%20Nardelli%20(keynote).mp4
Video SD: http://llvm.org/devmtg/2015-04/Videos/SD/Day%201/Francesco%20Zappa%20Nardelli%20(keynote)_1.mp4
Slides: http://llvm.org/devmtg/2015-04/slides/CConcurrency_EuroLLVM2015.pdf
Memory Access Ordering in Complex Embedded Systems
NDC 2015: Chris Shore
Lockless programming
Atmosphere 2014; Tomasz Baranski
https://www.youtube.com/watch?v=JUeaCfhwvHE
Lock-Free Programming (or, Juggling Razor Blades)
CppCon 2014; Herb Sutter
http://herbsutter.com/2014/10/18/my-cppcon-talks-2/
Part 1: Lazy initialization with DCL vs. call_once vs. function local statics, and lock-free mailbox algorithms
http://youtu.be/c1gO9aB9nbs
Part 2: Lock-free linked lists, the ABA problem, and atomic smart pointers
http://youtu.be/CmxkPChOcvw
How Ubisoft Develops Games for Multicore - Before and After C++11
CppCon 2014; Jeff Preshing
Code: https://gist.github.com/preshing/4d28abad8da4e40cb1d4
Video: https://www.youtube.com/watch?v=X1T3IQ4N-3g
C++ Memory Model Meets High-Update-Rate Data Structures
CppCon 2014; Paul E. McKenney
https://www.youtube.com/watch?v=1Q-RH2tiyt0
Lock-free by Example
https://www.youtube.com/watch?v=Xf35TLFKiO8
https://channel9.msdn.com/Events/CPP/C-PP-Con-2014/Lock-free-by-Example
Blowing up the (C++11) atomic barrier - Optimizing C++11 atomics in LLVM
LLVM Developers' Meeting 2014; Robin Morisset
Slides: http://llvm.org/devmtg/2014-10/Slides/Morisset-AtomicsPresentation.pdf
Video (Google Tech Talk): https://www.youtube.com/watch?v=hE4HW1Y2Dao
Video (720p): http://llvm.org/devmtg/2014-10/Videos/Blowing%20up%20the%20Atomic%20Barrier-720.mov
The C++ Memory Model
Meeting C++ 2014; Valentin Ziegler
https://www.youtube.com/watch?v=gpsz8sc6mNU
The Dos and Don'ts of Multithreaded Programming
NDC 2014; Hubert Matthews
NDC 2014; Mike Long
https://www.youtube.com/watch?v=BiLX7n_z9s4
https://github.com/meekrosoft/cppmemmodel
Slides: https://meekrosoft.github.io/cppmemmodel/
Shattering Illusions in Lock-Free Worlds: Compiler/Hardware Behaviors OSes/VMs
Black Hat USA 2013; Marc Blanchou
https://www.youtube.com/watch?v=wYFADkO-ZsA
Low Level Threading with C++11
C++Now! 2013; Tony Van Eerd
https://www.youtube.com/watch?v=dKLAwNaNvAY
std::atomic explained
C++ Wroclaw 0x03 (2013); Volodymyr Volkov
Everything you always wanted to know about synchronization but were afraid to ask
Symposium on Operating Systems Principles (SOSP) 2013
Tudor David, Rachid Guerraoui, and Vasileios Trigonakis
Video: https://www.youtube.com/watch?v=Dfagg__PuKw
Paper: http://sigops.org/sosp/sosp13/papers/p33-david.pdf
atomic Weapons: The C++ Memory Model and Modern Hardware
C++ and Beyond 2012; Herb Sutter
https://herbsutter.com/2013/02/11/atomic-weapons-the-c-memory-model-and-modern-hardware/
https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1-of-2
Don't Try This at Work -- Low Level Threading with C++11
https://www.youtube.com/watch?v=b9wWC5uSqLE&list=PL_AKIMJc4roWXECUOVFsSTn6zs-145shM&index=20
Threads and Shared Variables in C++11
GoingNative 2012; Hans Boehm
https://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Threads-and-Shared-Variables-in-C-11
C++11 Threads Surprises
2012 Hans-J. Boehm
Slides: https://parasol.tamu.edu/bjarnefest/program/boehm-slides.PDFs
Video (slides not visible):
https://www.youtube.com/watch?v=UWx4EA2uBzs
https://www.youtube.com/watch?v=TnCWTPuWzIk
Lockfree Programming Part 2: Data Structures
BoostCon 2011; Tony Van Eerd
https://www.youtube.com/watch?v=O4Jdq4PtfPA
(Part 2: continuing from where BoostCon 2010 left off)
Slides: https://github.com/boostcon/2011_presentations/raw/master/wed/lockfree_2011_slides.pdf
The Basics of Lock-free Programming
https://www.youtube.com/watch?v=LbOB_moUa94
Tags: native reading


text:
Foto vesti: Top 5 pharm tycoons benefiting from COVID-19 pandemic
The coronavirus pandemic has played havoc with the global economy. The global community has to deal with the fallout from the crisis for long years ahead. Remarkably, this year has not been tough on everything. It goes without saying that stocks of pharmaceutical companies are extending a stellar rally. Though the pandemic is not the best time for new billionaires to emerge, pharmaceutical bosses have expanded their wealth on the back of soaring revenues of their businesses.
Foto vesti
16:32 2020-11-18 Stéphane Bancel (France) Net worth: $1.5 billion Gains: +109% Income source: Moderna Stéphane Bancel is the CEO of Cambridge, Massachusetts-based biotech firm Moderna Therapeutics. The drug-making company was founded in 2011. It obtained a grant worth $483 million from the US government in 2020 with the assignment of developing a vaccine for the coronavirus infection. Bancel fulfilled his pledge having completed successfully the vaccine human trials by the fall 2020. Its effectiveness is estimated at 94.5%.
Stéphane Bancel (France)
Gains: +109%
Income source: Moderna
Stéphane Bancel is the CEO of Cambridge, Massachusetts-based biotech firm Moderna Therapeutics. The drug-making company was founded in 2011. It obtained a grant worth $483 million from the US government in 2020 with the assignment of developing a vaccine for the coronavirus infection. Bancel fulfilled his pledge having completed successfully the vaccine human trials by the fall 2020. Its effectiveness is estimated at 94.5%.
16:32 2020-11-18 Gustavo Denegri (Italy) Net worth: $4.5 billion Gains: +32% Income source: DiaSorin Holding a bachelor's degree in chemistry, Gustavo Denegri decided to buy the ailing biotechnological company DiaSorin in 2000. At that time, the firm produced diagnostic kits for smear tests. In 2020, the company rapidly adjusted its facilities for the production of diagnostic kits to test blood samples for the coronavirus antibodies. Nowadays, the company has production facilities in the UK, Italy, Germany, and the US, having increased sales around the world.
Gustavo Denegri (Italy)
Gains: +32%
Income source: DiaSorin
Holding a bachelor's degree in chemistry, Gustavo Denegri decided to buy the ailing biotechnological company DiaSorin in 2000. At that time, the firm produced diagnostic kits for smear tests. In 2020, the company rapidly adjusted its facilities for the production of diagnostic kits to test blood samples for the coronavirus antibodies. Nowadays, the company has production facilities in the UK, Italy, Germany, and the US, having increased sales around the world.
16:32 2020-11-18 Seo Jung-jin (South Korea) Net worth: $8.4 billion Gains: +22% Income source: Celltrion The entrepreneur established his own biopharmaceutical firm Celltrion in 2002 in Seoul. Seo Jung-jin took it public six years later in 2008. This year, the company has set about developing its own diagnostic division. Apart from this new direction, the company gives priority to various methods to treat COVID-19. Celltrion has already obtained permission from the authorities to conduct human trials of its antiviral drug.
Seo Jung-jin (South Korea)
Income source: Celltrion
The entrepreneur established his own biopharmaceutical firm Celltrion in 2002 in Seoul. Seo Jung-jin took it public six years later in 2008. This year, the company has set about developing its own diagnostic division. Apart from this new direction, the company gives priority to various methods to treat COVID-19. Celltrion has already obtained permission from the authorities to conduct human trials of its antiviral drug.
16:32 2020-11-18 Alain Mérieux (France) Net worth: $7.6 billion Gains: +25% Income source: BioMérieux BioMérieux, a multinational biotechnology company, was founded by Alain Mérieux as the diagnostic division within the Institut Mérieux conglomerate which had been created by his grandfather back in 1897. Due to the COVID-19 challenge, the company has to refocus its production on diagnostic solutions which test the coronavirus infection. The production of such kits, including reagents and instruments, was launched in March 2020. This diagnostic system provides results in mere 45 minutes. Such diagnostic kits gained enormous popularity worldwide, thus boosting the wealth of Alain Mérieux.
Alain Mérieux (France)
Income source: BioMérieux
BioMérieux, a multinational biotechnology company, was founded by Alain Mérieux as the diagnostic division within the Institut Mérieux conglomerate which had been created by his grandfather back in 1897. Due to the COVID-19 challenge, the company has to refocus its production on diagnostic solutions which test the coronavirus infection. The production of such kits, including reagents and instruments, was launched in March 2020. This diagnostic system provides results in mere 45 minutes. Such diagnostic kits gained enormous popularity worldwide, thus boosting the wealth of Alain Mérieux.
16:32 2020-11-18 Maja Oeri (Switzerland) Net worth: $3.2 billion Gains: +10% Income source: Roche Roche is a well-known Swiss company founded in 1896. Responding to the coronavirus pandemic, the company decided to expand the scope of its activities. In March 2020, Roche announced that it had begun the 3rd stage of trials of the medicine for the arthritis treatment for COVID-19 patients. Moreover, Roche invented and introduced its own serology test to detect antibodies against COVID-19 in patients who have already been exposed to the virus.
Maja Oeri (Switzerland)
Income source: Roche
Roche is a well-known Swiss company founded in 1896. Responding to the coronavirus pandemic, the company decided to expand the scope of its activities. In March 2020, Roche announced that it had begun the 3rd stage of trials of the medicine for the arthritis treatment for COVID-19 patients. Moreover, Roche invented and introduced its own serology test to detect antibodies against COVID-19 in patients who have already been exposed to the virus.
Nazad na listu
Preporučene foto vesti
Top 5 billionaires who passed away in 2020: remembering their lives
2020 was a tough year in every way. It is sure to be remembered across the globe for the devastation and loss of life caused by the coronavirus pandemic. Some people died a natural death, while others from the virus. Even among the richest people, there were some that passed away in 2020 but none contracted COVID-19. Read more about billionaires who died last year
Top 4 travel trends in 2021
The year 2020 became a real challenge for the tourism industry. The travel and tourism sector suffered the most from the closure of borders between countries, the introduction of quarantine for visitors, and restrictions on public services. The COVID-19 pandemic changed the way people spend leisure time. In order to keep up, the tourism industry has no other choice but to play by new rules
Top 5 bitcoin billionaires
When it comes to investing, money turns out to be the greatest value. Curiously enough, an investor's commitment to one type of asset could lead to colossal losses or make one a billionaire. For instance, those speculators whose portfolios have been consisting mostly of cryptocurrencies for several years, in particular bitcoin, are now ripping rewards. Let us look at investors whose devotion to cryptocurrencies have made them billionaires

redpajama_set_name: RedPajamaCommonCrawl


A light above your diningtable, or as a lightobject in your livingroom: pendant lights can be found in a broad range of different styles. Let our large collection pendant lights inspire you. Do you want to receive advice or more information? Please contact us, we love to help you make the right choice.


Virgo is a practical and health-conscious earth sign. You cook for health and nutrition. You follow recipes to a tee. You have more kitchen tools than anyone else, especially measuring spoons. You like small portions of food. Like Gemini, you enjoy snacks between meals.
Also like Gemini (you share quicksilver Mercury as your ruler), you tend to have a great deal of nervous energy. Those protein snacks are just what you need for your tendency to live with a fast metabolism. Taking magnesium at night will help you sleep. During the day, magnesium used in a warming tea or a smoothie will quickly sooth those jittery nerves.
Many holistic practitioners recommend Calm. It's a highly absorbable form of powdered magnesium that's also tasty (a few different flavors). You can get Calm with calcium, too. Taken together, calcium and magnesium are an effective duo for good health. Another advantage of taking magnesium, especially for Virgos, is to prevent constipation which is a common Virgo complaint.
The Foods Highest in Magnesium, according to Livestrong.com and DoctorOz.com, are Dark Leafy Greens, such as raw spinach and Swiss chard; Nuts and Seeds, Fish, Beans (soy, green beans, lentils), whole grains, avocados, bananas, dried fruit, and dark chocolate. Craving chocolate is a symptom of magnesium deficiency.


As a homeowner, you want to make sure your landscape look its best. You plant beautiful trees and pave the pathway so that your landscape would be perfect. However, even a well-tended landscape can look neglected if the trees are left untrimmed. There are types of trees that can grow excessively if not appropriately trimmed. Overgrown trees can result in different serious problems that are why having a professional tree trimming service can help you ensure the beauty and safety in your yard. If you are still not convinced of the benefits of hiring professional to trim your trees, keep reading. Here are three reasons why you should hire a professional tree trimming service.
Tree trimming is not intended for amateurs because the process involves the use of the right equipment and safety gears that an average homeowner may not have. You cannot just cut the tree with loppers because every cut should be planned and executed correctly. Although you can borrow the proper equipment for the job, it usually requires rent payment. Save yourself the hassle of going through these things by hiring an expert. A professional arborist doesn't only have the equipment but the knowledge to do the job as well. This gives you the confidence that your tree is taken care of properly.
A professional arborist knows the essential things about trees that you may be unaware of. There are correct methods in trimming that should be followed to ensure the tree doesn't get harmed. Also, there is a proper timing for trimming. Some trees should be trimmed before they get dormant while others can be safely trimmed all year round. When you let the professionals do the job, you can assure that they know the right time to prune your tree and avoid causing health problems in the future.
If you are planning to put off trimming until you have learned everything there is about trees, then you are putting the health of your tree in danger. Trimming is necessary to get rid of diseased or decaying branches that can fall onto your roof. It also ensures that your tree is getting enough sunlight it needs to thrive. While a professional arborist is doing the job, he can also tell if there are issues about your tree that needs to be addressed. If you think tree trimming is beyond your capacity, call a professional trimming service.


So having some down time for every one is very important, as is the removal or distraction of work. I am the worst for this as it is so tempting just to pickup the phone and check in with the office, or check those emails you know are piling up. It will always take me two or three days to "wind down" from the professional side of work but it is truly worth it.
This also goes for thinking time within the office, making decisions either structured or unstructured (on the fly!) is good but after a few days or even weeks it takes its toll on everyone. This is especially true if you are working on large designs or projects that require thought time!!
So do I have a secret – no! Can I give you advise on how to achieve this – no! So what's the point of reading this post. Firstly it is a reminder to myself, secondly it is down to you to find the best way of relaxing, taking down time or managing your work actives when you are on holiday – I would love to here some of your ideas in the mean time check out http://www.lifehacker.co.uk/ for some hits and tips.


Tegucigalpa, MDC, August 17, 2017 – As an outcome of the Honduras2020 program, several public and private sector institutions accompanied President Juan Orlando Hernández in the approval act of the new Tourism Promotion Law, submitted by the National Congress with attractive benefits to detonate investment and employment in the tourism sector of Honduras.
Honduras set itself, the task of innovating country incentives to the investor, thus achieving the goal of 250,000 jobs in that sector, an additional 1 million tourists annually and double the amount of tourism exports for the national economy, proposed in the Honduras2020 Program.
The country lacked the right conditions to attract investment in the sector. Despite being one of the Central American countries with the most varied tourism offer with an enormous wealth of natural resources, its level of growth in this sector is barely 0.5% comparing to the rest of the region whose average annual growth reaches levels up to of 7%.
Several institutions joined forces to materialize the new legal framework for the promotion of tourism, including the private public partnership Honduras2020, the Honduran Tourism Institute (IHT), the Honduras National Tourism Chamber (Canaturh), the Honduran Business Council (Cohep) and the Honduran Business Association of Small Hotels, among other institutions and businessmen from all over the nation, who presented to the Congress the law.
This law, which was approved by President Juan Orlando Hernández, includes a package of attractive incentives for local and international investment and at the same time ensures a profitable fiscal benefits over time. It also becomes an important instrument to generate new sustainable jobs through the investment expected over the next few years.
Equal treatment to motivate small, medium and large Honduran and foreign entrepreneurs to invest in the tourism sector of Honduras.
A new legal framework for existing companies that make additional new investments for more than 35% of their initial investment.
Fund to support land and air transportation companies in tourism.
Estimates suggest that additional tax revenues of approximately US $ 4 billion over the next 18 years could be achieved using a 60% hotel occupancy model.
This law is part of a larger strategy that will make the tourism sector a pillar of real growth to improve the quality of life of thousands of Hondurans. Which includes customer service training programs for the workforce and the necessary hotel, entertainment and urban infrastructure to compete as a world class tourist destination.
In addition, functionaries from Honduras2020 announced that there are already national and international investors are interested in investing in Honduras from the opportunities that this new Tourism Promotion Law will create, which will announce new investments and new sources of employment in the coming months.


text:
Phrenology is the fifth studio album by American hip hop band The Roots, released on November 26, 2002, by MCA Records. Recording sessions for the album took place during June 2000 to September 2002 at Electric Lady Studios in New York. It was primarily produced by members of the band and features contributions from hip hop and neo soul artists such as Cody ChesnuTT, Musiq Soulchild, Talib Kweli, and Jill Scott.

Although it did not parallel the commercial success of the band's previous album, Things Fall Apart, the album reached number 28 on the US Billboard 200 chart and sold steadily, remaining on the chart for 38 weeks. On June 3, 2003, it was certified gold by the Recording Industry Association of America, for shipments of 500,000 copies in the United States. Upon its release, Phrenology received universal acclaim from music critics, who praised its musical direction and lyrical themes, and it was included in numerous publications' year-end lists of the year's best albums.

Background
Following the breakthrough success of Things Fall Apart (1999), its release was highly anticipated and delayed, as recording took two years. The album is named after the discredited pseudoscience of phrenology, the study of head shapes to determine intelligence and character, which was used to rationalize racism during the 19th century in the United States. Its cover art was created by artist/printmaker Tom Huck.

Music and lyrics
Primarily a hip hop album, Phrenology features lyrical themes of hip hop culture and its commodification, with musical elements of rock, jazz, techno, hardcore punk, and soul music. According to music critic Greg Kot, the Roots forge a connection between hip hop and neo soul on the album, while Treble writer says it can "best be described" as progressive rap, and Entertainment Weeklys Raymond Fiore calls it the band's "left-field rock-rap opus". A production of the Soulquarians collective, the album features contributions by Cody ChesnuTT, Musiq Soulchild, Talib Kweli, and Jill Scott.

On "Something in the Way of Things (In Town)", Amiri Baraka performs a poem about how the spirit of death and decay permeates African-American urban experiences. Set to a fusion of several African-American music influences, his poem observes "something in the way of our selves" and uses unusual imagery such as death "riding on top of the car peering through the windshield" and a "Negro squinting at us through the cage" with a smile "that ain't a smile but teeth flying against our necks".

Critical reception

Phrenology received widespread acclaim from critics. At Metacritic, which assigns a normalized rating out of 100 to reviews from mainstream publications, the album received an average score of 87, based on 23 reviews. Mojo magazine hailed it as a "masterpiece", while Rolling Stone writer Pat Blashill said it has "a startling array of hip-hop reinventions". Dave Heaton from PopMatters called Phrenology "an impressive, ambitious work" that shows the Roots "filling their sound out and pushing it in a variety of directions", with a form of "tight soul/funk" that "sounds even more exact, funkier and edgier" than on Things Fall Apart. In the Chicago Sun-Times, critic Jim DeRogatis gave the record four out of four stars and called it "a near-classic right out of the gate, an urgent, raucous and thought-provoking 70 minutes that mine the musical territory between hard hip-hop and smoother Philly soul". Blenders RJ Smith called it "a celebration of self-determination, a nonstop joyride through some very complicated brains". Jeremy Gladstone from Kludge felt the Roots had combined "complicated beats" with "complex lyrics" to produce a "shockingly honest sound". In The Guardian, Alexis Petridis found the group "exclusively capable of absorbing other genres", while the "more straightforward hip-hop" is "idiosyncratic and hugely enjoyable". Slant Magazines Sal Cinquemani called the album "subtly progressive" and felt the lyrics "challenge the commodification and subsequent destruction of hip-hop culture".

In a less enthusiastic review, Uncut magazine said Phrenology shows the Roots' "willingness to push the envelope of their organic jazz-rap" that is unparalleled but sometimes musically pretentious or indulgent, particularly on "Something in the Way of Things" and the coda to "Water". AllMusic editor Steve Huey felt it is "a challenging, hugely ambitious opus that's by turns brilliant and bewildering, as it strains to push the very sound of hip-hop into the future." He also called it the band's "hardest-hitting" album because they successfully "re-create their concert punch in the studio." In his column for The Village Voice, Robert Christgau believed the Roots have finally discovered how to write tuneful and structured music on Phrenology, as they "humanize their formal commitment with injections of singing and guitar".

At the end of 2002, Phrenology was named one of the year's best albums. It was voted the seventh best album of 2002 in The Village Voices Pazz & Jop, an annual poll of American critics. The Rolling Stone Album Guide (2004) later gave it four-and-a-half stars and cited "Water" as a highlight, "that begins with the age-old Bo Diddley beat and ends as an extended musique concrète-style instrumental fantasia". Phrenology was included in the 2010 reference book 1001 Albums You Must Hear Before You Die and in Tom Moon's 1000 Recordings to Hear Before You Die (2008). Slant Magazine listed the album at number 231 on its "Top 250 Albums of the 2000s" (2010). Based on such listings, Acclaimed Music ranks Phrenology as the 19th most acclaimed album of 2002 and the 177th most acclaimed album of the 2000s.

Track listing
Information is adapted from the album's liner notes. "(co.)" denotes Co-producer. Track numbers continued from Things Fall Apart.

Sample credits and notes
 "Thought @ Work" contains elements from the composition "Apache" by The Sugarhill Gang, "Jam on the Groove" by Ralph McDonald, and "Human Beat Box" by The Fat Boys. According to Questlove, recording artist Alicia Keys "drop[s] in" on the track.
 "Water" comprises three parts, noted in Questlove's liner notes as "a. the first movement / b. the abyss / c. the drowning", and contains elements of "Her Story" by The Flying Lizards.
 "Quills" contains elements of "Breakout" by Swing Out Sister and features guest vocals from Tracey Moore of the Jazzyfatnastees.
 "Pussy Galore" contains elements of "Because I Got It Like That" by the Jungle Brothers.
 On the CD version of the album, there are 18 tracks instead of 16: Tracks 15, 16 and 17 are silent blank tracks. Track 18 starts with another 2:00 of silence, and after that consists of two untitled songs, identified as "Rhymes and Ammo", originally from Soundbombing III (2002) and featuring Talib Kweli, and "Thirsty!", which is originally a track by Elektrochemie LK called "When I Rock".

Personnel
Credits for Phrenology adapted from Allmusic.

Musicians

 Black Thought – vocals
 Sarah Chun – cello
 Omar Edwards – arp synthesizer
 Nelly Furtado – background vocals
 Michelle Golder – cello
 Kamal Gray – keyboards, theremin, production
 Jef Lee Johnson – guitar
 Alicia Keys – featured artist
 Talib Kweli – vocals
 Malik B. – featured artist

 Tracey Moore – background music
 Mos Def – featured artist
 James Poyser – moog synthesizer, strings
 Questlove – assistant engineer, drums, mixing, production, sequencing
 Rahzel – beatboxing
 Ursula Rucker – featured artist
 Jill Scott – vocals
 James Blood Ulmer – guitar
 Nuah Vi – cello
 Hope Wilson – screams
 Ben Kenney - guitar

Production

 Jon Adler – assistant
 Pablo Arraya – assistant
 Jim Bottari – engineer
 Andrew Brooks – assistant
 Cody ChesnuTT – producer
 Jeff Chestek – engineer, mixing
 Tom Coyne – assistant, mastering, mixing
 Kareem Da Bawl – producer
 Andre Dandridge – assistant
 DJ Scratch – producer
 Robert "LB" Dorsey – assistant, engineer
 Caliph Gamble – assistant
 Chris Gehringer – mastering
 Gordon Glass – assistant
 Jason Goldstein – mixing
 Kenny J. Gravillis – design
 Tom "Evil Prints" Huck – illustrations
 Ben Kenney – mixing

 Steve Mandel – assistant, engineer
 Carlos "Storm" Martinez – engineer
 James McKrone – assistant
 Shinobu Mitsuoka – assistant
 Kurt Nepogoda – assistant
 Richard Nichols – executive producer, mixing
 Omar the Scholar – producer
 Bob Power – mixing
 Kareem Riggins – producer
 Kelo Saunders – producer
 Jesse Shatkin – assistant
 Jon Smeltz – engineer
 Scott Storch – producer
 Tahir – producer
 Shawn Taylor – assistant
 Steef Van De Gevel – assistant
 Vince Vilorenzo – assistant
 Scott Whiting – assistant
 Ray Wilson – engineer

Charts

Weekly charts

Year-end charts

Singles

See also
 Progressive rap
 Soulquarians

References

Bibliography

External links

 "Between Grooves" by the Los Angeles Times

2002 albums
Albums produced by Questlove
Albums produced by Scott Storch
Albums produced by DJ Scratch
Albums recorded at Electric Lady Studios
MCA Records albums
The Roots albums
Progressive rap albums

redpajama_set_name: RedPajamaWikipedia


Billy Corgan didn't require any warming up in an interview last week at the Roosevelt Hotel in Hollywood.
"I'm on fire," the Smashing Pumpkins frontman said as he took a seat by the pool, just hours after flying in from New York, where he'd spent a few days hyping his band's new album, "Monuments to an Elegy."
Corgan, 47, had come to L.A. for more promotion, including a performance on "Jimmy Kimmel Live" and a concert scheduled for Tuesday night at the Fonda Theatre. But the urgency radiating off him wasn't merely the byproduct of a busy schedule. He had the tumult of the music industry -- and Smashing Pumpkins' position in it -- on his mind too.
You've done the album-rollout thing so many times over the last 25 years -- with Smashing Pumpkins, with other bands, as a solo act. Is the experience anything more than a routine to you now?
It's pretty much going as I figured. But there's the intellectual part -- "It's probably going to be like this, and I'm going to be in this position and have to fight my way out of this corner" -- and then there's actually going through it. And that's always so much more intense than your intellectual mind wants you to believe.
What's the corner you're fighting your way out of?
I think we're in a culture war: the haves and the have-nots, the idiots and the people with some sensorial heart about the world. We're in a dumbing-down of America and we're in a brightening-up of America as people form their own systems, and then the rest of them just want to dig a little deeper into Middle-earth. It reminds me of the early days of that transitional culture of '80s hair metal into grunge.
And this time hair metal is...?
Pop. It's a numbers game. If you look at it on a microcosmic [level], a pop artist sells a lot more than my band or some other band. But if you look at it on a macro, music culture is so diminished. The numbers are so low. And everybody runs around like it's the same, including people in this town. They're still fronting like they know what they're doing. Nobody knows what they're doing! Meanwhile, up in San Fran, they're making gazillions, making new models. And we're here still twiddling our thumbs over who said this and who did that.
Your point is that music matters less than it did when Smashing Pumpkins began putting out records in the early '90s.
We're in a vacuum, is my point. Pick your year: '86, '71. The album release does not mean what it used to mean. It's a cultural yawn.
Is the music important to you while you're making it?
It's very difficult to feel like it's important. I feel like somebody with vaudevillian skills facing the advent of the movie business. Somebody's going, "Hey, look, it's really good that you can do that trick with the dog, but it doesn't really mean anything anymore."
So why continue? You've got other stuff going on, including a teahouse in suburban Chicago and a new musical that recently premiered.
I'm plotting. I feel like I started something, a conversation, when I brought the band back in 2006, and I want to finish that conversation. I don't want to look back in 20 years and say, "Why didn't you finish?" So I feel like one more record -- the one after this one -- that'll be the end of the conversation.
"Monuments" is surprisingly upbeat, given your rather bleak view of the world. How'd these buoyant themes and catchy choruses happen?
Because I told myself to make this record in exchange for making the other record. So it's like this is the be-nice record and the other is the be-not-nice record. And it's actually shaping up that way, although the original version of the be-not-nice record was kind of prettier and darker -- more like "Adore." But as I go through this process, the be-not-nice is becoming be-really-not-nice. I'm totally ready to go there now.
Is it hard to focus for the moment on "Monuments"?
No, it's fine. Records are like a Shakespeare play -- it is what it is. You inhabit the space, and then when it's done, it's done. That's the best way I can describe it. It's a character or a mode. So when I'm in "Monuments" mode, I think a certain way, I feel a certain way, I move a certain way. It only stops working when it's stale, and it's not stale to me. You know, you think the smallest conversation is insignificant. And then you look back and you go, "That was actually the most important conversation."
"Monuments" is the pivot point. It's like I had to prove to myself I could juggle 14 balls to go, "I don't need to do that anymore." "Monuments" is the end of that guy, the end of that trained monkey, the end of the rat in the cage. It's over. Done. Goodbye.
I suspect you've said that before.


IQ Online is a premier training institute providing world-class training in different IT specializations. A global training provider, IQ Tech specializes in delivering instructor-led live online training to professionals and corporate. With subject matter experts as a panelist and state-of-the-art course delivery infrastructure, IQ Tech is treading ahead and creating a legacy of professionals.
IBM WebSphere DataPower provides useful performance metrics and is an important and helpful monitoring component of WebSphere Appliance Management Center for WebSphere Appliances. It provides multi-box operational management for WebSphere DataPower SOA Appliances. The IBM Datapower admin online training course at IQ Tech is designed to help students deftly handle the WebSphere DataPower Appliance administration tasks such as, managing firmware across multiple WebSphere DataPower Appliances, performing backup and restore operation and manage domain and service configurations. A practical and hands-on course designed by industrial experts that takes you through all finer aspects of IBM DataPower admin.
Have a quick glance at the course schedule below.
What you'll learn in IBM DataPower Admin Training Course?
Why learn IBM DataPower Admin Online Training Course?
WebSphere Appliance Management is a multiplatform, simple and easy-to-deploy solution that saves time for system administrators by streamlining usual and repetitive tasks. Using the WebSphere application management, system administrators can pay attention to developing a sound and robust environment instead of simply maintaining it.
The IBM DataPower Admin Training course at IQ Online is designed for professionals to hone their admin skills in WebSphere appliance management. An in-depth course with a focus on handling day-to-day admin challenges, the course focuses on presenting best-industry practices with a practical approach.
Have a look at the detailed curriculum below.


Mommy Maestra: Curious George: A Halloween Boo Fest!
Curious George: A Halloween Boo Fest!
Courtesy of CG ® & © 2013 Universal Studios and/or HMH. All Rights Reserved.
Oh, come on. Who hasn't thought of the Man in the Yellow Hat as just a giant platano (banana) anyway?
This coming Monday, the first-ever Curious George Halloween special, CURIOUS GEORGE: A Halloween Boo Fest!, premieres on PBS KIDS. The one-hour special features three original songs, including "It's Halloween Today," sung by Pat Monahan, the lead singer of Train.
It's George's first Halloween in the country, and Bill tells him and Allie about the "Legend of No Noggin" – a spooky tale about a hat-kicking scarecrow who haunts the countryside on Halloween. But is the legend real? George and Allie are determined to find out by taking a picture of No Noggin in hat-kicking action. But first, George needs to figure out what he's going to be for Halloween so he can win the costume contest at the town Boo Festival and give the prize to the Man with the Yellow Hat. Will George be able to put together the perfect costume and find out the truth about No Noggin? Only the curious will find out!
In fact, this episode kicks off a whole week of Halloween-themed programming on PBS KIDS. You'll just have to watch and be surprised about all the holiday goodness!
And of course, in true PBS KIDS fashion, because they believe in the power of transmedia storytelling, PBS KIDS has launched a new Curious George online game to accompany the show. In it, your child will use problem-solving and logical thinking skills as he or she explores a pumpkin patch with George, encountering playful spooky surprises along the way. It's cute. My son, who loves all things George even though he is 7, loved it. The site even features games and free printables in both English and Spanish (another reason I love PBS KIDS).
Disclosure: I'm a PBS KIDS Ambassador. I was not, however, compensated for this post, but received information about the new episode. All thoughts and opinions expressed above are completely my own!


Monodisperse bulk boron- and nitrogen-doped functional resin and carbon nano/microspheres are of particular importance in several applications, despite the lack of highly efficient syntheses to date. Herein, a simple protocol to synthesize monodisperse bulk boron- and nitrogen-doped polymer nano/microspheres is reported using a surfactant-free hydrothermal polymerization of 3-hydroxyphenylboronic acid and formaldehyde with the participation of ammonia for the first time. The size of polymer spheres can be highly tuned from 92 to 1741 nm by varying the concentration of ammonia or precursors (3-hydroxyphenylboronic acid and formaldehyde) and the ratio of alcohol/water. Monodisperse bulk boron- and nitrogen-doped carbon spheres were first fabricated by pyrolysis of the corresponding polymer spheres in high yields due to their excellent thermal stability. The composition and structure of the polymer and carbon spheres were characterized in detail using NMR, FT-IR, XPS, Raman spectroscopy, and/or EDX, which further demonstrated their formation mechanism. Bulk boron- and nitrogen-doped carbon sphere electrodes exhibited good performance as a supercapacitor. The facile method may extend the syntheses of polymer and carbon nanomaterials with desirable properties to various additional applications.