期刊名称:Indian Journal of Computer Science and Engineering
印刷版ISSN:2231-3850
电子版ISSN:0976-5166
出版年度:2017
卷号:8
期号:4
页码:535-541
出版社:Engg Journals Publications
摘要:Modern server processors in high performance computing consist of multiple integratedmemory controllers on-chip and behave as NUMA in nature. Many user level runtime systems like OpenMP, Cilk and TBB provide task construct for programming multi core processors. Task body may definethe code that can access task local data and also shared data. Most of the shared data is scattered acrossvirtual memory pages. These virtual pages may be mapped to various memory banks of sockets due tofirst touch policy of Linux. The user level run-time environments must ensure that the tasks are mappedat a minimum possible distant memory bank where the shared data is located. At the same time, theruntime systems must ensure the load balancing among the multiple cores. Many of the user levelruntime systems apply work stealing technique for balancing the load among the cores. Often, there is atradeoff between these two requirements: object locality and load balancing. In this paper, we address theissue of shared object binding onto NUMA nodes, propose an adaptive solution for task-stealing runtimesystems. The proposed solution is in the form of hints to the runtime system and the runtime systemmanages the object binding effectively so that shared object locality and load balancing are satisfied.These hints are compatible with newly introduced environment variables of OpenMP 4.0 specificationand can be accommodated in future implementations. Experiment results show that this policy canimprove the performance of standard bench marks.
关键词:Locality; NUMA; User level runtimes; Task; Shared Object; Work stealing; Stealing Domain