作者ggg12345 (ggg)
站内Programming
标题Re: [问题] 有关古老程式跑在多核平台上的问题?
时间Wed Oct 21 09:20:22 2009
※ 引述《琏琏 <[email protected]>, 看板: Programming》之铭言:
: 目前一般程式在执行时,也是在同一核心执行,除非利用多绪自动分到不同 cpu
: 你的程式若没有多绪,是要怎样平行运算?再怎样模拟,顶多 VM OS 自己跑多核,
: 你的程式还是在单核上运作。
:
1. 假设单绪程式码, 存在着可以变成多绪可利用多核平行/并行处理的成份.
2. 再假设这个平行/并行特性於程式码执行时, 仍然可以被检测出来.
3. 进一步再假设这个检测的算法可以不必再依靠额外的其他硬体装置或者
存在有这种辅助的装置就能及时或耗费不多的, 在进一步执行前就能侦
测出来.
旧的程式虽然没写成并行多绪的形式, 但平行/并行的特性若仍然可以被侦
测出来, 就存在着可以改善的机会.
: ==> 本文由 "Hi hi <[email protected]>"
: > 於 news:4iScdh%24yPU%40bbs.cis.nctu.edu.tw 发表
: > ==> 在 [email protected] (kerr) 的文章中提到:
: > > 不知道po在这个版上会不会不适合,由於有一些古老的程式, 没有原始码,
: > > 程式没有对多核心作最佳化, 那有没有方法在作业系统之上, 建立一个虚拟
: > > 单核环境, 实际上这个虚拟环境却有效利用多核心的效能, 这样就能不用更
: > > 改程式却能大大提升程式的效能, 作业系统可以是windows 或 linux
: > > 不知有没有这样的解决方案, 感谢
目前应该是没有明显的这类工具可以拿来使用
: > 程式执行的效能,如果是依照作业系统模拟出来的环境来执行,
: > 应该效能不太会提升太多,主要是稳不稳定
: > 因为要提升效能 主要还是程式码的演算法是否用对。
: > 尽管作业环境是由另一个多工环境所模拟支援,
: > 但是,若只是程式的执行档执行,
: > 所模拟环境应该会让程式以为是当初的那个环境
: > 我觉得该担心的不是效能,而是模拟的环境是否稳定
:
改用多核是想要提高速理速度, 当然, 结果是一定要正确.
稳定或不稳定是指那个项目 ?
是指偶而会变得失控发飙, 有解变无解, 做不到要求吗 ?
还是指会掉入 dead lock , 永远跑不出来 ?
假如是担心多绪并行一定会用到同步机制, 有同步机制就有 dead
lock 的可能性存在. 问题就变成是否有 dead-lock free 的单绪
变多绪转换法存在 ? 这个确实是该事先思考的问题.
但是, 这是一个已知的可执行的循序程式码, 会被拿出再用, 必然
是该程式是可被控制在能正确操作使用的范围. 所以其中的一个正
确的, 跟相依性有关的可执行次序会是已知的, 参照这个正确的相
依性次序, dead lock 就可以被强制解开. 因此, dead lock free
的必要性可以减弱.
============================================================
多核已经是比单核多出了一些硬体部份, 但可能还有一些额外的硬体
机制需要增多或增强以确保 "及时"的侦测与分派/启动工作 给多核.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.4.12