演示指令级并行

2024-05-14 18:36:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在工作中展示指令级的并行性。我最初所做的是使用python(愿意更改)并执行以下操作:

def test():
    for i in range(5000):
        j = 0
        k = 0
        l = 0

def test2():
    for i in range(5000):
        j = i * i
        k = j * 2
        l = k * i

if __name__=='__main__':
    from timeit import Timer
    t = Timer("test()", "from __main__ import test")
    print t.timeit()
    t2 = Timer("test2()", "from __main__ import test2")
    print t2.timeit()

然而,一位教授告诉我,这并没有演示ILP,而是显示了python解释器是否得到优化。在

我能做些什么来演示ILP的工作?在


Tags: infromtestimportformaindef指令
3条回答

如果你能证明cpython确实在用ILP来做这件事,那么你的教授可能是对的,你可能会证明他是错的,但我认为这不值得。在

另一方面,ILP是相当硬件绑定的,并且如果程序员确实明确地完成,那么如果你在C++或ASM中做到这一点,你最好能显示编译器(或汇编程序)是优化的。我敢打赌,你写的片段正是他想要的那种东西,但他就是不同意你的语言。在

像上面的pjc50一样,我不认为这是一个可以接受的ILP例子,但它可能只是削减它,让你的分数正确。如果你不是只看成绩,也许这会有帮助:http://developer.apple.com/hardwaredrivers/ve/software_pipelining.html。在

你的教授是对的。我认为一个可接受的演示必须用汇编程序编写,或者最多用C/C++编写,可能使用类似MMX指令集的东西。在

默认情况下,mingw不添加任何优化。所以我所做的是使用一些C代码,因为没有循环优化,所以它显示了ILP的工作原理

相关问题 更多 >

    热门问题