![composing parallel software efficiently with lithe sumamry composing parallel software efficiently with lithe sumamry](https://ars.els-cdn.com/content/image/1-s2.0-S0167819118303387-gr18.jpg)
![composing parallel software efficiently with lithe sumamry composing parallel software efficiently with lithe sumamry](https://www.mdpi.com/proceedings/proceedings-63-00074/article_deploy/html/images/proceedings-63-00074-g006.png)
Further, whether you are modernizing an existing code base or starting with a clean slate will determine your perception. That is, concurrency has many dimensions. It is, however, extremely hard to get right without the systematic use of the proven practices and patterns of managing concurrency.Ĭoncurrency is that elephant in the story of blindfolded men who make wildly different perceptions about the elephant depending on where they touch it. multithreading is a popular choice for implementing concurrency in infrastructure software. Existing software stacks are rarely designed to adapt and scale on machines with up to a dozen cores. New operating system and middleware mechanisms are required to handle multithreading, scheduling, resource-sharing, and communication in many-core systems.Īs contemporary many-core processors have cores in high double digits, keeping all the cores busy is not simple. To position software applications to do more on machines with more cores-i.e., re-enabling the proverbial free lunch-requires substantial restructuring of the embedded software stacks, which include applications, middleware, and the operating system.
#Composing parallel software efficiently with lithe sumamry how to
Editor's note: The author describes how to combine the data-centric publish/subscribe-based Data Distribution Service model with the Leader/Followers thread-pool concurrency thread management pattern.Īs recent technology trends usher us into the many-core era, we need novel techniques that allow high-performance embedded applications to exploit massive local concurrency.