擅长:python、mysql、java
<p>只是检查一下:你想对10^10做10^4个操作。。。因此,即使你的操作是O(1),那仍然是10^14个操作,这是一个相当困难的问题(正如haraldkl在评论中指出的,这也在消耗大量内存)只是为了检查:你是要调用powerA2 10000次,还是10000次是你期望的迭代值。如果是前者,您可以使用线程(或者更好的是,单独的进程)来获得一些并行化,但我不知道这是否足够;如果后者,除非我遗漏了一个技巧,否则您的输入看起来不是可并行的,因为每个循环迭代的输入依赖于前一个循环的输出。在GPU上可能有一种方法可以做到这一点(我想至少有一种有效的方法来完成规范化位,这样它就可以通过使用向量化快速地完成大量的工作)</p>
<p>编辑以响应注释:cpython(这是最常见的python实现)有一个全局Interpeter锁(GIL);其他一些python实现(jython、ironpython)没有;per <a href="https://wiki.python.org/moin/GlobalInterpreterLock" rel="nofollow">https://wiki.python.org/moin/GlobalInterpreterLock</a>。在</p>
<blockquote>
<p>Note that potentially blocking or long-running operations, such as
I/O, image processing, and NumPy number crunching, happen outside the
GIL. Therefore it is only in multithreaded programs that spend a lot
of time inside the GIL, interpreting CPython bytecode, that the GIL
becomes a bottleneck.</p>
</blockquote>
<p>据我所知,它应该可以使用线程与numpy和不可怕的瓶颈,但你的问题看起来仍然很难转换成线程,除非有一些数学我遗漏了。在</p>