Programming 板


LINE

※ 引述《lkerr (kerr)》之铭言: : 标题: [问题] 有关古老程式跑在多核平台上的问题? : 时间: Sat Aug 1 23:44:56 2009 : : 不知道po在这个版上会不会不适合,由於有一些古老的程式, 没有原始码, : 程式没有对多核心作最佳化, 那有没有方法在作业系统之上, 建立一个虚拟 : 单核环境, 实际上这个虚拟环境却有效利用多核心的效能, 这样就能不用更 : 改程式却能大大提升程式的效能, 作业系统可以是windows 或 linux : 不知有没有这样的解决方案, 感谢 ======== 用软体方法让单一的单核老程式在多核下变快, 目前应该没啥现成的办法. 如果是让多个程式在多核心机下一起跑, 不因多程式分时而变慢, intel 是做了相当多的努力, 多段程式相互间乱序交错跑, 塞满可用资源的管线, 但不改各段原次序, 以硬体协助指令排程的做法, intel 是费力做了. 目 前则是改用 compiler 做指令预排程以减少硬体成本. Virtual Machine 是可能让多个老程式在多核下一起跑, 但总耗费时间是 能界於单核单机与多机各跑其一之间. 这问题很有趣也很有挑战性 ! 先要谈可能性与做法存在否 ? 没有 source program , 也是可以把机器码当 source code 拿来转换解译, 所以, 可能性是存在的. 平行处理的要求就是片段程式与资料间没有前後相依性, 先做後做不影响结 果的就行. Data parallel 就是其一, 如同在大图内找东西, 可分成小图, 各段各自处理. 这种方式的只要加前补後再用老程式就能平行变快, 但要考 虑现在的多核并非多处理机架构, 可能只是多个多种处理单元, 假如浮点运 算器只有一组, 资料若都靠浮点运算那也是架构对不拢. 其次是有前後次序性, 能用生产管线(pipleline)串接, 同时同步各做各 的工作, 矩阵回圈通常有这种性质, 多少能用之再变快一点. 这种做法可能就是 run-time 才做 code parallel & optimization ! 资讯 不太足够, 但要能学习与预测. : : -- :



※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 202.86.171.101 : → tinlans:就算有我想实用性也是堪虑。 118.160.109.251 08/02 03:48 : → freesamael:目前没有 118.231.88.113 08/02 12:20 : → haryewkun:如果你的程式是单程的,那麽在不改程式 60.49.44.200 08/02 13:19 : → haryewkun:的前提下,在任何平台下执行都是单程的 60.49.44.200 08/02 13:20 : → haryewkun:,不可能说换了平台它就变成多核心的。 60.49.44.200 08/02 13:20 : → haryewkun:单机的游戏,不会因为换一换平台就变成 60.49.44.200 08/02 13:21 : → haryewkun:mmorpg啊…… 60.49.44.200 08/02 13:21 : 推 leicheong:核心转换间context switching的 219.73.23.124 08/02 14:32 : → leicheong:overhead大概会把这样做的好处消耗殆尽. 219.73.23.124 08/02 14:33 : → leicheong:这样做没有好处的... 219.73.23.124 08/02 14:33 各干各的, 不要切换不就没 context switching ? : 推 StubbornLin:要如何有效利用多核效能 这点很难 118.170.94.59 08/02 15:12 : → StubbornLin:什麽东西可以并行做 什麽不可以 118.170.94.59 08/02 15:12 : → StubbornLin:单行程的程式很难把它拆成平行的吧 118.170.94.59 08/02 15:13 : 推 sunneo:顶多把system call弄thread帮忙吧 118.171.80.193 08/02 15:20 想到病毒码加挂於各程式, 还能各自同时随着同时跑就令人激赏 ! 不改原程式也行 ! 没限制不能复制一部份补綷加挂吧 ! 果真是超级挑战的难题 ! 跟基因改造有拼 ! --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.4.12
1F:→ tinlans:我觉得这一定有人会拿来发论文打嘴炮拿学118.160.109.251 08/02 17:18
2F:→ tinlans:位用,但是要实用的话可能性可说是没有。118.160.109.251 08/02 17:19
3F:→ tinlans:而且九成九的机率一定是做苦力搞出来的。118.160.109.251 08/02 17:19
4F:→ ggg12345:论文要有证明或模拟数据,资料平行最容易 140.115.4.12 08/02 17:39
5F:→ ggg12345:但大家都知,加綷转译是不说嘴高人干的事! 140.115.4.12 08/02 17:43
6F:→ ggg12345:国内多核心计划都在新竹帮的地盘转!难免! 140.115.4.12 08/02 17:45
7F:→ ggg12345:新竹帮地区出论文的量与速,有目共睹吧! 140.115.4.12 08/02 20:10
8F:推 leicheong:除了用functional prog. lang.写的以外, 219.73.23.124 08/03 23:49
9F:→ leicheong:一般程式没多线程考量的话, 要在多核 219.73.23.124 08/03 23:49
10F:→ leicheong:平行跑已经机会不大了... 还要要求没 219.73.23.124 08/03 23:50
11F:→ leicheong:context switching吗? 这是在做会帮你 219.73.23.124 08/03 23:51
12F:→ leicheong:自动重写的AI吗? :OOOOO 219.73.23.124 08/03 23:51
13F:→ leicheong:病毒码加载通常是透过hook的方式在呼叫 219.73.23.124 08/03 23:54
14F:→ leicheong:API时被「顺道」执行那样? 要不就是直接 219.73.23.124 08/03 23:55
15F:→ leicheong:以另一process执行... 不论那种方式都是 219.73.23.124 08/03 23:57
16F:→ leicheong:本身已替多线执行的方式做了规划才可 219.73.23.124 08/03 23:58
17F:→ leicheong:成立吧... 219.73.23.124 08/03 23:58
========== 多核是多个 function unit , 多组 register set , 多个 instruction pointer 共同放在同一个 chip 之内. 为了省电, 配合 MOS Device 的 clock 不能那麽高速, 但多核的内部如同 RISC Processor 一样, 也没 必要让 register set 与 FU 是随各核完全分离的, 各核可以做到动态 配属, 配不到资源就等. 假设有 四核 有四个 instruction pointer , 四个 ip 可指在同一程式 码块上, 但 data oprand 的 index base 起始值不同, 所以执行时, 是 取出不同记忆体的资料各自运算, 这是 data parallel. 这个多核是在 同一个 chip 内, 可以把 MIMP 当成 SIMP 使用, 就可以有 array computing 的效能, 这是偏计算. 若是夹杂着各种不同偏重的多工程序, 应该要能动态调配资源来用. 高阶语言产生的 pattern 都是固定的形式, 老式程式在没有 optimization 前是容易被辨识的. 多数矩阵就能被分割成 data parallel . 矩阵运算的 前後分叉合并点就可以用病毒码方式的 patch code 完成. 这可能是苦功, 但要害的点就那几处. 老式的病毒可以查出挂点, 还能去除 还原. 这个 optimization 则是改造程式码, 若有多核可用就使用 data parallel, 没有就照旧, 所以是基因改造. 可并行部份, 新式的可以让 programmer 宣告, 老式的就靠自动检视转换与 标记, 对标记的後续处理与进一步转换调派就可由 VMM 来做. 主要的重点是: 这是一件可持续发展的事业, 需求因多核硬体的来临而存在. 实用就是要能从 嘴泡讨论, 逐步变成可行, 可试, 值得一试, 可用. ※ 编辑: ggg12345 来自: 140.115.4.12 (08/04 12:04)
18F:推 leicheong:因此, 我就说你这目标是写出「可以自动 219.73.23.124 08/04 20:35
19F:→ leicheong:重写程式」的AI罗... 你说的这些跟制作 219.73.23.124 08/04 20:36
20F:→ leicheong:interpreter的复杂度相差不远, 你就认为 219.73.23.124 08/04 20:37
21F:→ leicheong:这些动作在执行上的overhead不会比 219.73.23.124 08/04 20:38
22F:→ leicheong:context switching大吗? :P 219.73.23.124 08/04 20:38
23F:推 leicheong:还有, 大部份病毒都不会去找挂点, 只是 219.73.23.124 08/04 20:41
24F:→ leicheong:写一个「壳」把病毒码後的所有部份以 219.73.23.124 08/04 20:42
25F:→ leicheong:LoadModule的形式载入并执行. 挂hook 219.73.23.124 08/04 20:42
26F:→ leicheong:的相象也只是几个常用的function call, 219.73.23.124 08/04 20:43
27F:→ leicheong:不用想得太复杂的... 219.73.23.124 08/04 20:44
======= 这题本来就是 parallel compiler , 要称 AI 也可. 先偷懒找特定的 pattern 先标记转换. 执行时, 这部份就 自动trap 进入特殊的模组 (vmm), 由之先调派多核针对事先已对 array data 大回圈标记好之处, 利用多核与多个功能单元, 完成平行与管线计算, 就可改善最主要部 份的效率. 老式解毒还原的技术不就类似上述的动作 ? 专针对少数 pattern , 事情就不会是那麽难解 ! 多核若只将多机的 processor unit 复制置於同一个 chip , 原本透 过 bus 共用记忆体的方式就变成是多核共用 cache , 这会使得 cache 的共用 bus 变得非常高速而更耗电. 若使用分隔的 cache 与各自衔接 的 bus 就无此问题, 但彼此互通转送结果形成 pipleline 的效用就会 减弱. 多核对内部 register 与 cache , 各个 function unit 的配属 终究会应需要而继续演化, 从极端来看就是从多核的 MIMP 可以动态调 整成相当於一个单核的 SIMP 效果. 多机共用记忆体架构的对策是将 single process 变成 multi-thread, 是 task/thread level 的平行运算. 但从 MIMP 变成 SIMP 的运算就 相当於将长串多个指令码转化为少数几个 VLIW 指令, 让各个 function unit 在 instruction level 同时并行处理. 假如仅把多核内部资源都配属於同一个程式, 那就没有 context switch 的必要. 有了随时将结果暂存的 register/cache 当缓冲, 可动态配属与 调整的不等配置多核, 在每次存回结果下就能减化 context switching. 换言之, 多核的资源在动态可调整下, 形成一个相当於 单核的RISC处理 器, 拥有大部份的 register set 与 function unit 在 VLIW 的指令下 让各个功能单元平行运作. ※ 编辑: ggg12345 来自: 140.115.4.12 (08/05 08:11)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP