问题标签 [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.
multicore - 多核处理器与多 CPU 中的内存访问
我有个问题,
多处理器机器是否可以从 RAM(单 ram 系统)访问数据?例如,机器有 2 个并行执行的处理器 p1、p2,它们是否有可能访问相同的 ram 进行读写(ofcos 写入不在同一位置)
我知道在多核机器中这是不可能的,因为数据总线是共享的。
process - 如何保护在不同内核中执行的进程的关键部分?
我已使用sched_setaffinity()将创建的进程分配给不同的核心,并将互斥锁创建为进程共享:
该互斥体存储在所有进程都可以访问的文件位置。它适用于同一核心中的进程,但不同核心中的进程正在执行,就好像没有关键部分一样。它们像正常情况一样并行执行。那么基本上,如何在多核系统中同步进程?
caching - 处理器如何知道多处理器系统中缓存行的最新副本
在每个处理器都有自己的缓存副本的多处理器系统中,处理器如何知道从哪里获取数据副本。因为它将存在于自己的缓存中,也存在于其他相应处理器或主内存的缓存中,即它将如何知道哪个副本是最新的
android - Gradle android 为不同的处理器架构构建
我想使用 Gradle 为 4 个不同的 Android CPU 处理器架构(armeabi armeabi-v7a x86 mips)构建 4 个单独的 apk。
我在libs文件夹中有为 4 个 CPU 架构构建的原生 OpenCV 库。
我希望每个 apk 只包含对应正确 CPU 架构的 OpenCV 库。
当前的构建脚本如下:
有人可以帮我解决这个问题吗?
干杯,
java - 多核环境下的数据同步(基于Java)
这是我的第一个问题,所以请对我温柔一点。
当两个线程,比如 t1 和 t2,运行在不同的 CPU 内核上同时调用共享对象上的同步方法时,即在相同的纳秒/处理器周期内,会发生什么?锁是如何以及通过什么架构元素来解决的?
这似乎是一个显而易见的问题,但我在互联网上找不到任何东西。谢谢!
multiprocessing - 为什么在构造常规布尔 MRSW 寄存器时需要 2 个寄存器?
在上面的代码中,使用了 old 和 value 两个变量。然而,根据我的说法,只有一个变量可以做同样的事情,那就是价值。
multiprocessor - 分层 CLH 锁定行为
谁能解释在集群主控将本地队列合并到全局队列后,HCLH 锁如何处理在本地集群中创建的新节点?
multithreading - 具有超线程的多核处理器上的多线程程序(进程)
对于多核计算,一开始让我感到困惑的是,多核硬件的模型对真机过于抽象。
我在一台带有单个英特尔处理器的笔记本电脑上工作,包含4 个内核并支持超线程,这使得逻辑内核的数量为 8。
假设我有一个Java程序实现了并发算法(据说Java会使用线程调度的OS规则,所以JVM不会影响调度),并且程序是纯CPU绑定的。
我的观察:
- 如果程序(进程)运行的线程数少于 8 个,则工作的并行度会随着线程数的增加而增加
- 当总线程数大于 8 时,性能会变得复杂,但通常不会比运行 8 个线程有更多的改进;而对于某些特定的算法,它比运行8个线程更糟糕,即时间消耗大大增加。
我对此的了解: 据我所知,我运行的程序被操作系统视为用户进程,如果程序创建线程以尝试获得并行性,操作系统将尝试在可用内核中调度这些线程。同一内核上进程的任何线程都可以共享该内核上进程的总执行时间。
我的问题: 假设 CPU 只运行我的程序。即没有其他用户进程。
如果 CPU 只有 1 个核心,则该进程将无法通过多线程获得并行性的好处,因为该进程的总执行时间不会改变。这是真的吗?
如果有多个内核可用,操作系统将尝试在不同内核上均匀、公平地调度进程的线程,并且不同内核上的进程线程获得自己的(额外)执行时间,从而加快速度。这是真的吗?
如果有 n 个线程和 m 个内核,其中 n>m,则某些内核可能会运行超过 1 个进程的线程,这甚至可能会因为同一内核上的线程之间的“上下文切换”而损害并行性的加速,并且以不同速度运行的进程线程的潜在副作用。这是真的?
非常感谢!
multithreading - Perl ithreads:共享变量 - 多处理器内核线程 - 可见性
perlthrtut 摘录:
请注意,共享变量保证如果两个或多个线程同时尝试修改它,变量的内部状态不会被破坏。但是,除此之外没有任何保证,如下一节所述。
在支持多处理器内核线程的 Linux 上工作。
是否保证所有线程都会看到更新的共享变量值?如上所述咨询 perlthrtut 文档没有这样的保证。
现在的问题是:可以以编程方式做些什么来保证这一点?
python - python中的多处理器是否需要同步?
当使用这样的代码时
假设线程修改list_out,它们是否以同步方式进行?