Main Thread Pinning

https://software.intel.com/en-us/mpi-developer-reference-windows-main-thread-pinning

Main Thread Pinning

Use this feature to pin a particular MPI thread to a corresponding CPU within a node and avoid undesired thread migration. This feature is available on operating systems that provide the necessary kernel interfaces.

Processor Identification

The following schemes are used to identify logical processors in a system:

  • System-defined logical enumeration
  • Topological enumeration based on three-level hierarchical identification through triplets (package/socket, core, thread)

The number of a logical CPU is defined as the corresponding position of this CPU bit in the kernel affinity bit-mask. Use the cpuinfo utility, provided with your Intel MPI Library installation to find out the logical CPU numbers.

The three-level hierarchical identification uses triplets that provide information about processor location and their order. The triplets are hierarchically ordered (package, core, and thread).

See the example for one possible processor numbering where there are two sockets, four cores (two cores per socket), and eight logical processors (two processors per core).

NOTE

Logical and topological enumerations are not the same.

Logical Enumeration

0


4


1


5


2


6


3


7

Hierarchical Levels

Socket


0


0


0


0


1


1


1


1


Core


0


0


1


1


0


0


1


1


Thread


0


1


0


1


0


1


0


1

Topological Enumeration

0


1


2


3


4


5


6


7

Use the cpuinfo utility to identify the correspondence between the logical and topological enumerations. See Processor Information Utility for more details.

Default Settings

If you do not specify values for any main thread pinning environment variables, the default settings below are used. For details about these settings, see Environment Variables and Interoperability with OpenMP API.

  • I_MPI_PIN=on
  • I_MPI_PIN_MODE=pm
  • I_MPI_PIN_RESPECT_CPUSET=on
  • I_MPI_PIN_RESPECT_HCA=on
  • I_MPI_PIN_CELL=unit
  • I_MPI_PIN_DOMAIN=auto:compact
  • I_MPI_PIN_ORDER=compact

原文地址:https://www.cnblogs.com/dhcn/p/12272874.html

时间: 2024-10-14 15:01:04

Main Thread Pinning的相关文章

Process/Thread Pinning Overview

https://www.nas.nasa.gov/hecc/support/kb/ProcessThread-Pinning-Overview_259.html Pinning, the binding of a process or thread to a specific core, can improve the performance of your code by increasing the percentage of local memory accesses. Once your

main thread starting…

执行结果例如以下: main thread starting- Thrad 2 staring- Thrad 2 end- Thrad 4 staring- Thrad 4 end- Thrad 1 staring- Thrad 1 end- Thrad 3 staring- Thrad 3 end- Thrad 5 staring- Thrad 5 end- main thread end- CountDownLatch方式代码例如以下: package com.test.thread; im

jquery.js:8672 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

html5谷歌流浪器报错:jquery.js:8672 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/. 解决方法: 所有的a标签加上:javascript:void(0) <a href="

主线程任务太多导致异常退出(The application may be doing too much work on its main thread)

今天花费了一天的时间来解决这个bug. 这种在程序运行期间出现的问题比较棘手,如果再没有规律的话就更难解决. 还好这个bug是由规律的,也就是说在程序执行半个小时左右后就会因为此异常而导致程序退出:那么在网上找了下原因,无非是说一下几点: 1.把业务放在子线程中去完成,然后通过handler来更新界面 2.通过runOnUiThread的方法来实现 再补充一点就是:优化代码,将不需要重复执行的代码执行一次就ok了,特别是需要绘制UI的代码更不能随便放在重复执行的地方 一.bug现场还原 我的程序

Error: CompareBaseObjectsInternal can only be called from the main thread

Posted: 01:39 PM 06-17-2013 hi, we're working on a project where we need to do some calculations on a separate thread. The data we need for the calculations is stored on a scriptable object. We use the scriptable object so that we can serialize the d

Unity3d报告奇怪的错误CompareBaseObjectsInternal can only be called from the main thread.

其中使用了该项目.NET的Async Socket代码.后来不知道什么时候这个奇怪的错误的出现: CompareBaseObjectsInternal can only be called from the main thread. Constructors and field initializers will be executed from the loading thread when loading a scene. Don't use this function in the con

MFC data forwarding to main thread via PostMessage

MFC data forwarding to main thread via PostMessage          up vote3down votefavorite 3 I have a C++/MFC application I need to restructure. The app used to process most of the data on the main thread, therefore blocking the input, and now I want to c

Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?

默认情况,如果没有显示的指 service 所运行的进程, Service 和 activity 是运行在当前 app 所在进程的 main thread(UI 主线程)里面.service 里面不能执行耗时的操作(网络请求,拷贝数据库,大文件 )特殊情况 ,可以在清单文件配置 service 执行所在的进程 ,让 service 在另外的进程中执行 <service android:name="com.baidu.location.f" android:enabled=&quo

在Main Thread中使用异步

Whenever you first start an Android application, a thread called "main" is automatically created. The main thread, also called the UI thread, is very important because it is in charge of dispatching the events to the appropriate widgets and this