scholarly journals Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages

2014 ◽  
Vol 11 (3) ◽  
pp. 1-25 ◽  
Author(s):  
Andi Drebes ◽  
Karine Heydemann ◽  
Nathalie Drach ◽  
Antoniu Pop ◽  
Albert Cohen
2019 ◽  
Vol 49 (9) ◽  
pp. 1379-1401 ◽  
Author(s):  
Akshay Utture ◽  
V Krishna Nandivada

2019 ◽  
Vol 27 (0) ◽  
pp. 840-851
Author(s):  
Zhengyang Bai ◽  
Tasuku Hiraishi ◽  
Hiroshi Nakashima ◽  
Akihiro Ida ◽  
Masahiro Yasugi

2016 ◽  
Vol 51 (8) ◽  
pp. 1-2
Author(s):  
Andi Drebes ◽  
Antoniu Pop ◽  
Karine Heydemann ◽  
Nathalie Drach ◽  
Albert Cohen

2019 ◽  
Vol 44 (4) ◽  
pp. 19-19 ◽  
Author(s):  
Joshua Hooker ◽  
Peter Aldous ◽  
Eric Mercer ◽  
Benjamin Ogles ◽  
Kyle Storey ◽  
...  

Author(s):  
Joseph F. Boudreau ◽  
Eric S. Swanson

While there is no such thing as a “typical” C++ class, several common syntactical constructs lend themselves to extremely widespread use and must be mastered by C++ programmers. To motivate the discussion of software design at the level of the C++ class, examples from computer science and optics are introduced. Important syntactical elements such as constructors, destructors, copy constructors, assignment operators, cast operators, and const qualifiers, together with function overloading, operator overloading, and dynamic memory allocation are discussed. These concepts, illustrated with examples from physics, are presented and explained. Further examples from optical and quantum mechanical problems are left to the exercises. This chapter and its exercises gives the reader sufficient information to begin developing his or her own classes and to experiment with class design through trial and error.


Author(s):  
Jing Chen ◽  
Pirah Noor Soomro ◽  
Mustafa Abduljabbar ◽  
Madhavan Manivannan ◽  
Miquel Pericas

2021 ◽  
Vol 17 (2) ◽  
pp. 1-45
Author(s):  
Cheng Pan ◽  
Xiaolin Wang ◽  
Yingwei Luo ◽  
Zhenlin Wang

Due to large data volume and low latency requirements of modern web services, the use of an in-memory key-value (KV) cache often becomes an inevitable choice (e.g., Redis and Memcached). The in-memory cache holds hot data, reduces request latency, and alleviates the load on background databases. Inheriting from the traditional hardware cache design, many existing KV cache systems still use recency-based cache replacement algorithms, e.g., least recently used or its approximations. However, the diversity of miss penalty distinguishes a KV cache from a hardware cache. Inadequate consideration of penalty can substantially compromise space utilization and request service time. KV accesses also demonstrate locality, which needs to be coordinated with miss penalty to guide cache management. In this article, we first discuss how to enhance the existing cache model, the Average Eviction Time model, so that it can adapt to modeling a KV cache. After that, we apply the model to Redis and propose pRedis, Penalty- and Locality-aware Memory Allocation in Redis, which synthesizes data locality and miss penalty, in a quantitative manner, to guide memory allocation and replacement in Redis. At the same time, we also explore the diurnal behavior of a KV store and exploit long-term reuse. We replace the original passive eviction mechanism with an automatic dump/load mechanism, to smooth the transition between access peaks and valleys. Our evaluation shows that pRedis effectively reduces the average and tail access latency with minimal time and space overhead. For both real-world and synthetic workloads, our approach delivers an average of 14.0%∼52.3% latency reduction over a state-of-the-art penalty-aware cache management scheme, Hyperbolic Caching (HC), and shows more quantitative predictability of performance. Moreover, we can obtain even lower average latency (1.1%∼5.5%) when dynamically switching policies between pRedis and HC.


Sign in / Sign up

Export Citation Format

Share Document