草庐IT

中央处理器

全部标签

python - 识别处理器核心或工作人员 ID 并行 python

我正在并行运行进程,但需要为每个要写入的cpu进程创建一个数据库。我只想要与每台服务器上分配的cpu一样多的数据库,因此写入3个数据库的100个作业可以在之后合并。是否有我可以识别每个worker的workerID号或核心ID?defworkerProcess(job):ifworkerDBexist(r'c:\temp\db\'+workerid):##processjobintothisdatabaseelse:makeDB(r'c:\temp\db\'+workerid)##firsttimethis'worker/core'used,makeDBthenprocessimpor

c++ - 是否可以决定哪个函数在 MPI 或任何其他 C++ 库中的哪个处理器上运行?

假设我有8个进程和4个处理器/内核。我可以在程序执行之前将特定进程分配给特定内核吗?例如处理器1=进程号4,5处理器2=进程号1,3处理器3=进程号2,6处理器4=进程号7,8 最佳答案 您可能想看看SetProcessorAffinityMask()功能。恕我直言,这不是您想要的,而是您能得到的最接近的。Aprocessaffinitymaskisabitvectorinwhicheachbitrepresentsalogicalprocessoronwhichthethreadsoftheprocessareallowedtor

windows - 线程数和处理器核心数有什么关系?

我正在编写一个基于线程池(IOCP)的服务器应用程序。但是不知道多少线程合适。线程数与处理器核心数有关吗? 最佳答案 如果您的工作项从不阻塞,请使用threads=cores。如果您的线程永远不需要取消调度,您可以通过为每个核心创建一个线程来最大化所有核心。如果您的工作项有时会阻塞(如果您想充分利用IOCP,它们不应该做太多),您需要更多线程。您需要测量多少。 关于windows-线程数和处理器核心数有什么关系?,我们在StackOverflow上找到一个类似的问题:

c++ - 如何找到每个线程正在运行的处理器?

我有一个多线程程序,并被要求添加一个选项,将每个线程放在它自己的核心(CPU、处理器等)上。我已经使用SetThreadAffinityMask()编写代码来执行此操作.我获取进程的默认关联掩码,验证是否有足够的处理器来执行此操作,然后将每个线程的关联掩码设置为仅包含一个可用处理器(并且每个线程都不同)。所有这一切似乎编译和运行没有问题,但我如何检查它是否真的在工作?似乎应该有一些监控工具可以显示线程在哪个CPU上运行,但我找不到。ProcessExplorer将显示线程的CPU使用率,但不会显示发生在哪个CPU上。我查看了可在perfmon上使用的可能计数器,但同样我只能找到利用率百

c++ - _M_X64 是否可以在 x64 处理器上取消设置?

VisualStudio编译器(2005到2008)为x86/x64位环境定义了四个宏。引用PredefinedMacros_M_X64为x64处理器定义。_M_IX86为x86处理器定义。有关详细信息,请参阅下面的_M_IX86值表。这不是为x64处理器定义的。_WIN32为Win32和Win64应用程序定义。总是定义。_WIN64为Win64应用程序定义。现在在x32位机器上永远不会设置_M_X64。在64位机器上,如果您在32位环境中构建,_M_X64将被取消设置,而_M_IX86将被定义。_WIN32始终被定义,与32/64位版本无关。在所有x64处理器中,_M_X64是否有特

c++ - 在 C++ (Windows) 中放弃处理器时间

我环顾四周,似乎找不到我要找的东西,但首先让我强调一下,我不是在寻找高精度sleep功能.这是我要解决的问题的背景:我制作了一个内存映射库,它的运行方式很像命名管道。您可以将字节放入其中,从中取出字节,并查询有多少字节可用于读/写,所有这些都是好东西。如果它们传递8KB或更大的字节block,使用它进行通信的进程速度很快(大部分),平均速度为4GB/s。当您接近512Bblock大小时,性能下降到大约300MB/s。问题:极少数情况下,在负载很重的服务器上,会出现非常长的延迟时间(超过5秒)。我对这个问题的原因的运行理论是,当发生大量传输时(大于映射内存的大小),写入数据的进程将紧密轮

windows - 我可以在多处理器机器中禁用一个或多个处理器吗?

我的服务器有两个四核处理器,安装了windows2003标准版。我想在配备单个四核处理器的机器上测试应用程序,并且我想使用这台机器,那么如何禁用两个处理器中的一个?我更喜欢软件解决方案,但如果唯一的解决方案是硬件也没问题。 最佳答案 快速而肮脏:使用任务管理器,选择进程,然后使用关联位为该进程禁用您喜欢的任何内核。对于调试也非常有用。 关于windows-我可以在多处理器机器中禁用一个或多个处理器吗?,我们在StackOverflow上找到一个类似的问题: h

c++ - 如何在后台进程中处理来自 Windows 任务管理器的 "End Task"?

我编写了一个简单的测试程序(TestProgram.exe)来学习如何处理CTRL_CLOSE_EVENT,这是我的观察结果和我的问题:1)当我双击TestProgram.exe启动它时,如果我现在转到任务管理器,TestProgram.exe会列在“应用程序”下。当我在TestProgram.exe上执行“结束任务”时,将调用我的CTRL_CLOSE_EVENT处理程序。但是2)当我打开命令提示符并启动TestProgram.exe时,它​​列在任务管理器下的“后台进程”下,并且对其执行“结束任务”不会导致CTRL_CLOSE_EVENT。我的真实应用是按照上面案例2)中的描述使用的

windows - 为什么我的进程只消耗处理器功率的 5%?

不确定这里是否适合提出这个问题,但它似乎与线程和系统资源等有关。为什么当我有3个不同的进程在运行时,我的任务管理器显示系统空闲进程正在使用90%以上的CPU功率!?!?是不是因为I/O瓶颈?例如,如果我进行SVN结帐,清空回收站,同时浏览网页,为什么系统空闲进程为97%,而其他进程各为1%左右?他们似乎都不是真的走得很快。 最佳答案 大多数进程正在等待磁盘或网络操作完成,或者等待用户输入。你可能认为你有一个快速的磁盘或网络连接,但与内存/cpu相比,这就像走到最近的图书馆,在目录中查找一本书并在书架上找到它,而不是已经在你手中的书.

python - 多处理未在双处理器 Windows 机器上实现完整的 CPU 使用率

我正在双处理器Windows机器上工作,并尝试使用多处理库运行多个独立的Python进程。当然,我的目标是最大限度地利用两个CPU以加快计算时间。我的机器的详细信息如下:操作系统:Windows10专业工作站版内存:524GB硬盘:三星SSDPRO960(NVMe)CPU:XeonGold6154(2倍)我使用Python3.6执行主脚本,然后使用多处理库生成72个独立于内存的工作程序。最初,我机器的所有72个内核都以100%使用。然而,大约5-10分钟后,我第二个CPU上的所有36个内核的使用率都降至0%,而第一个CPU上的36个内核仍保持在100%。我不明白为什么会这样。关于双处理