我从未完全理解计算机如何在不使用其所有处理能力的情况下运行。(这种混乱可能源于大学里可怕的操作系统课程。)
据我所知,一个线程(例如操作系统的调度程序)必须在任何给定的时间点做某事。如果有什么可以做,它只是循环,直到有是事做。我认为,这种性质的循环总是尽可能快地运行,这会耗尽处理器的所有计算能力。
我猜我的误解是一个错误的假设,即“如果无事可做,它就会循环”。但是,我不知道它还能做什么。
是否可以对多个文件进行 gunzip 并将它们连接成一个大文件,但在多核机器上并行执行?例如,现在我这样做:
gunzip -c file1.gz > final
gunzip -c file2.gz >> final
gunzip -c file3.gz >> final
gunzip -c file4.gz >> final
Run Code Online (Sandbox Code Playgroud)
我可以做同样的事情,以便不同文件的 gunzip 处理在多核机器的不同 CPU 中完成,并将它们全部连接到同一个最终文件中吗?
我有一个集成 GPU,这意味着它可以在与我的 CPU 相同的 RAM 上运行。(ATI Radeon HD 4200,集成在 M4A785TD-V EVO 上)
这是否也意味着我的 GPU 不能并行计算?
另见:https : //stackoverflow.com/questions/15436019/parallel-processing-in-integrated-gpu
Gnu Parallel 是一个功能强大的工具,我用它来并行运行许多独立的 BASH 命令作为一组。我希望能够顺序运行相同的命令,而不会对我使用的命令进行重大更改。我知道有一个开关可以强制按顺序运行输出,但我希望 gnuparallel 实际上按顺序运行。我的原因是为了在一台容易过热的机器上进行测试,解决我的硬件问题不是一种选择,此外,人们可能会想象其他测试方案,顺序运行 gnuparallel 会很有用。
所以。有没有办法简单地按顺序运行 gnuparallel 或者我需要手动将 gnuparallel 命令集解压到其组件命令中并按顺序运行它们?
在 shell 脚本中并行运行命令通常非常有帮助,但我找不到这样做的方法。这可能吗?如果是这样,我将如何实现这一目标?我主要有兴趣为fish.
当我运行的命令需要很长时间才能完成但可以或需要同时运行以减少完成所有操作所需的时间时,它很有用。
英特尔奔腾处理器 E5700(2M 高速缓存,3.00 GHz,800 MHz FSB)没有超线程,但它有 2 个内核,所以我假设它有 2 个线程
现在,如果我编写一个同时运行 4 个线程的繁重数字处理程序,与英特尔酷睿 i3-3110M 处理器(3M 缓存,2.40 GHz)等处理器相比,这款 E5700 处理器如何使用其 2 个内核和 2 个线程同时处理 4 个线程具有 2 个内核但 4 个线程的超线程?
E5700 是否会比具有 2 个内核但具有 4 个超线程的 i3 3110m 更慢并存在瓶颈,或者一切都会在两个处理器上一帆风顺且快速而不会注意到任何不同?
此外,用四个或更多线程编写的程序能否在 2 核 2 线程处理器上高效运行,或者会出现错误或速度变慢吗?
#
好的,感谢您稍后回答问题我访问了这个网站,分数越短对处理器越好
http://www.cpu-world.com/benchmarks/socket_1155_multi.html
基准 wPrime v1.55 (32M) wPrime 基准测量计算从 1 到 33554431 的数字的平方根所花费的时间。该程序使用牛顿法来估计函数。
对结果有很大影响的 CPU 特性:CPU 频率、浮点性能、内核/线程数。
对结果影响较小的 CPU 特性:内存速度、内部缓存的大小。
零件号 越短越好 结果
英特尔® 酷睿™ i7-3770K 处理器(8M 高速缓存,高达 3.90 GHz) 4 核 8 线程 是 HT
6.87 …
bash ×1
fish ×1
gnu-parallel ×1
gunzip ×1
linux ×1
multi-core ×1
shell ×1
shell-script ×1
threads ×1