问题标签 [multicore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3821 浏览

c++ - 在 Win32 上,如何将线程移动到另一个 CPU 内核?

我想确保线程被移动到特定的 CPU 核心,并且调度程序永远不能从它移动。

SetThreadAffinityMask()电话,但没有GetThreadAffinityMask()

我需要这个的原因是,如果调度程序将该线程移动到另一个 CPU,高分辨率计时器会变得混乱。

0 投票
9 回答
5285 浏览

f# - 函数式编程和多核架构

我在某处读到函数式编程适合利用计算中的多核趋势。我真的不明白。它与 lambda 演算和冯诺依曼架构有关吗?

0 投票
7 回答
10429 浏览

erlang - 为什么 MPI 被认为比共享内存更难,而 Erlang 被认为更容易,当它们都是消息传递时?

如今,人们对 Erlang 作为一种在多核上编写并行程序的语言很感兴趣。我听说有人争辩说,Erlang 的消息传递模型比主要的共享内存模型(如线程)更容易编程。

相反,在高性能计算社区中,占主导地位的并行编程模型是 MPI,它也实现了消息传递模型。但在 HPC 世界中,这种消息传递模型通常被认为很难编程,人们认为 OpenMP 或 UPC 等共享内存模型更容易编程。

有谁知道为什么在 IT 和 HPC 世界中对消息传递和共享内存的理解存在如此大的差异?是不是因为 Erlang 和 MPI 在实现消息传递方面的一些根本差异,使得 Erlang 风格的消息传递比 MPI 更容易?还是有其他原因?

0 投票
7 回答
4578 浏览

windows-xp - 如何在windows xp中将进程分配给核心

有没有办法在运行 Windows XP 的多核系统上将进程分配给一个核心(或多个核心)?

使用 GUI 的答案是可以接受的。

0 投票
5 回答
15078 浏览

c# - 显式多核 C# 应用程序

是否有任何简单的方法可以显式地使已经线程化的应用程序利用多核环境?(如果有)。

第一个问题是如何确定我的运行时环境是否支持多核应用程序?

如果我确定我可以使用多核功能,我可以显式分配线程以在不同的内核上运行吗?如果是这样,线程通信是由操作系统/硬件处理还是我必须弄脏我的手?

0 投票
7 回答
70843 浏览

python - python是否支持多处理器/多核编程?

多处理器编程和多核编程有什么区别?最好在 python 中展示如何编写用于多道程序和多核编程的小程序的示例

0 投票
2 回答
6725 浏览

visual-studio-2008 - 使用 #import 的多核构建 (/MP) 策略

我正在使用 VS 2008 为我们的大型 VC++ 项目开发新的解决方案配置。我希望此配置使用多核构建标志/MP

但是,生成 COM 包装类的“#import”功能遍布整个代码库,使用 /MP 时不支持此功能。

我明白为什么#import 不起作用,我想知道是否有人遇到过这个问题以及他们是如何解决这个问题的?

我正在执行以下操作:

  • 不要在小型或无用的项目上使用 /MP 标志。(也许我稍后会回到他们身边)
  • 删除了 #import 并将其替换为更标准的 MIDL 生成的标头 (#include)。这只是在几个容易转换为老式 COM 的地方的一个选项。
  • 创建一个#imports 剩余库的新项目。先做那个构建。#包括它在之前#imported 的所有位置创建的.tlh 文件。

我很好奇是否有人有其他建议?另外,关于最后一点(创建一个新项目并仅在此处使用#import) - 如果你做了这样的事情,你是怎么做到的?什么类型的项目,“源”是什么样的,你在哪里输出文件?你是如何包括他们的?(你知道,为我做所有的思考!)

0 投票
2 回答
942 浏览

multicore - 哪些应用领域受 CPU 限制,并且往往会从多核技术中受益?

我听到很多人谈论由于多核处理器和并行性而在编程中即将到来的革命,但我无法摆脱对我们大多数人来说,CPU 周期不是瓶颈的感觉。很长一段时间以来,我几乎所有的程序都以一种或另一种方式(数据库、文件系统、网络、用户交互等)进行了 I/O 绑定。

现在我可以想到一些 CPU 周期是限制因素的领域,例如代码破解、图形、声音、某些形式的模拟(天气、物理等)以及某些形式的数学研究,但它们看起来都相当专门的应用领域。我的总体印象是,大多数程序仍然受 I/O 限制,而且对于我们大多数行业 CPU 来说已经有相当长的一段时间了。

我是不是摇摆不定?今天还有哪些其他应用程序领域受 CPU 限制?它们中的任何一个都包括编​​程人口的很大一部分吗?本质上,我想知道多核 CPU 是否会影响我们中的很多人,如果会,会如何?

0 投票
15 回答
1716 浏览

multithreading - 确保线程安全的最佳编程方法/方法

当我从大约 20 年的基本、Pascal、COBOL 和 C 过程编程的背景中学习 Java 时,我当时认为最难的事情是围绕 OOP 术语和概念来思考。现在有了大约 8 年的扎实 Java 经验,我得出的结论是,使用 Java 和类似的语言(如 C#)进行编程最困难的事情就是多线程/并发方面。

编写可靠且可扩展的多线程应用程序非常困难!随着处理器发展“更宽”而不是更快的趋势,它正迅速变得非常关键。

当然,最难的领域是控制线程之间的交互以及由此产生的错误:死锁、竞争条件、陈旧数据和延迟。

所以我的问题是:你采用什么方法或方法来生成安全的并发代码,同时减少死锁、延迟和其他问题的可能性?我提出了一种有点非传统的方法,但在几个大型应用程序中效果很好,我将分享这个问题的详细答案。

0 投票
1 回答
3750 浏览

winapi - Win32:计算多核/多处理器系统中的线程 CPU 利用率

我目前正在开发一个需要了解 CPU 利用率的 MFC 应用程序。它可能在不同的时间点有多个线程,但大部分工作都是由主线程完成的。

我正在尝试找到一种方法来计算该主线程使用的 CPU 百分比。但是,我遇到了一些问题,即如何在多 CPU / 多核环境中准确地完成此任务。问题是大多数系统调用似乎都提供了系统信息,而我需要特定于我的主线程正在其上执行的处理器的信息。

我看过 WMI,但它似乎对这项任务来说太过分了。GetThreadTimes() 能满足我的需要吗?