问题标签 [multiprocessor]
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.
multithreading - 在多线程应用程序中,多核或多处理器安排会更好吗?
我已经在这里阅读了很多关于这个主题的内容(例如,stackoverflow.com/questions/1713554/threads-processes-vs-multithreading-multi-core-multiprocessor-how-they-are 或multi-CPU, multi-core和超线程)和其他地方(例如,ixbtlabs.com/articles2/cpu/rmmt-l2-cache.html 或 software.intel.com/en-us/articles/multi-core-introduction/),但我仍然是不确定一些看起来非常简单的事情。所以我想我只是问问。
(1) 每个内核都有专用高速缓存的多核处理器是否与多处理器系统一样有效(当然要在处理器速度、高速缓存大小等方面进行平衡)?
(2) 假设我有一些图像要分析(即计算机视觉),并且我将这些图像加载到 RAM 中。我的应用程序为每个需要分析的图像生成一个线程。这个应用程序在共享缓存多核处理器上的运行速度是否会比在专用缓存多核处理器上运行得慢,并且后者的运行速度是否与在等效的单核多处理器机器上运行的速度相同?
感谢您的帮助!
c# - 强制 C# 应用程序在具有多核处理器的 PC 中使用单核
我正在为我的 C# 应用程序使用 Haptek People Putty 播放器,我在论坛上看到人们说它不适用于多核处理器。我的应用程序在我的 Core 2 Duo 笔记本电脑上运行良好,但当我尝试在四核台式机上运行它时,它会滞后很多。我正在考虑为自己进行调查,在这种情况下,我将不得不强制我的应用程序在单核上运行。这在 C# 中可能吗?
python - 在没有挂起的情况下停止在 Python 中读取进程输出?
我有一个适用于 Linux 的 Python 程序,几乎看起来像这样:
程序挂在这一行:
这发生在保持更新输出的工具中,如“Top”
我最好的试验:
它比第一个效果更好(它被 kelled 了),但它返回:
二审:
和第一个一样。由于“readlines()”而挂起
它的返回应该是这样的:
并保存在变量“进程”中。任何我的想法伙计们,我现在真的被困住了吗?
linux - 如何修改我的 perl 脚本以使用多个处理器?
嗨,我有一个简单的脚本,它接受一个文件并在其上运行另一个 Perl 脚本。该脚本对当前文件夹中的每个图片文件执行此操作。这是在一台具有 2 个四核 Xeon 处理器、16gb 内存、运行 RedHat Linux 的机器上运行的。
第一个脚本work.pl 基本上调用了magicplate.pl 传递一些参数和文件名,以供magicplate.pl 处理。Magic Plate 处理每张图像大约需要一分钟。因为 work.pl 执行相同的功能超过 100 次,并且因为系统有多个处理器和内核,所以我正在考虑将任务拆分,以便它可以并行运行多次。如有必要,我可以将图像拆分到不同的文件夹。任何帮助都会很棒。谢谢
这是我到目前为止所拥有的:
c# - 我可以做些什么来让我的 C# 应用程序利用多个处理器内核?
我一直在对 .NET C# 应用程序使用资源(如 CPU 或内存)的方式进行一些测试。我编写了一些循环来计算大量数字的值,我对算法的权重感到满意。
我有一个四核 2.4 GHz 处理器,但我注意到在任务管理器中,我的应用程序只使用了我的 CPU 的 25%。为什么不使用 100%?这是否意味着在 VS 2008 中编译的 .NET C# 应用程序仅支持单核 CPU?或者有没有办法强制它使用所有的 CPU?
operating-system - 如何在多核上实现锁
对于单处理器,锁定算法非常简单。
但是我们如何在多处理器/多核系统中实现此代码。如果 2 个核心/进程尝试为不同的进程提供相同的锁怎么办。
synchronization - 如果不同处理器中的两个进程试图同时获取锁会发生什么
好的,所以我正在阅读有关同步的内容,并阅读了各种算法,例如自旋锁、信号量和互斥锁,以避免竞争条件。
但是,当多个进程同时访问数据时,这些算法无法防止 SMP 中的竞争条件。
例如,假设处理器 A 中的线程 1 运行 lock(mutex1); 撤回(1000);解锁(互斥体1);
处理器 B 中的线程 2 运行 lock(mutex1);存款(1000);存款(1000);解锁(互斥体1);
当两个线程完全在同一时间运行时,两个线程将同时处于临界区。
唯一的解决方案(应该在硬件级别)是使每个处理器彼此稍微偏离运行,但这违背了并行性的目的。
是否有任何硬件级别的支持来避免多个处理器尝试同时获取锁的情况?
(这不是原子性问题,而是精确并行性问题,我想知道 SMP 是如何处理它的)。
multithreading - 确定机器上可用内核的数量?
我希望我的软件为每个内核创建一个线程,显然不同的 Mac 具有不同数量的内核。
有谁知道如何(以编程方式,通过 Cocoa)确定内核数量?
multiprocessor - 核心数是否影响执行时间
假设我编写了一个在双核处理器上执行需要 30 秒的程序。16核处理器需要多长时间?相同或不同
两种情况: 一种- 编写程序时考虑了多个内核。无论内核数量如何,都编写了两个程序。
c# - 什么时候应该和不应该使用这个 C# 实用程序类来通过 Interlocked 控制线程
我试图了解如何编写此类背后的逻辑,以及何时应该和不应该使用它。任何见解将不胜感激
更新:我在我的源代码中找到了一个示例用法......这表明如何使用上述对象,虽然我不明白“为什么”