要一次使用多个CPU,您需要运行程序的多个副本,或者在程序中运行多个线程。开始时也不是很难。
然而,做一个平行版本的“我有10000个大数字,我想知道他们每个人是否是素数都比它要做的”要容易得多“A = A + B“类型并行计算 - 因为在进行下一步之前,您需要新A。 CFD计算倾向于做后者(据我了解),但大数组。您可能能够将大型矢量计算分解为一组较小的矢量caclulations [例如,我们有一个1000 x 1000的矩阵,您可以将其分割为4组250 x 1000矩阵或4组500 x 500矩阵,以及在它自己的线程中执行每一个]。
如果它是你自己的代码,那么你希望知道它是什么以及它是如何工作的。如果它是某人的代码,那么你需要与任何拥有代码的人谈话。
有没有不可思议的方式来“自动使用更多的CPU”。四核处理器上30%的CPU使用率可能意味着你的系统基本上只使用一个内核,5%左右的开销用于系统中的其他事情 - 或者在你的应用程序的某处使用第二个线程,一点点CPU做它做的事情。或者应用程序是多线程的,但并未完全使用多核,因为线程之间存在争用某些共享资源的争用......我们不可能说出这三个[或其他]选项中的哪一个。
要求更多的内存不会帮助,除非你有一些有用的东西放入内存。如果有空闲内存,则应用程序将获得尽可能多的内存。