多核编程:需要什么?
我有一个四核处理器,我真的很想在运行快速模拟时利用所有这些内核。问题是我只熟悉我们在实验室中拥有的小型Linux集群,并且我在家里使用Vista。
对于使用C或Java进行多核编程,我想研究哪些方面?我想谷歌的行话是什么?
感谢您的帮助。
我有一个四核处理器,我真的很想在运行快速模拟时利用所有这些内核。问题是我只熟悉我们在实验室中拥有的小型Linux集群,并且我在家里使用Vista。
对于使用C或Java进行多核编程,我想研究哪些方面?我想谷歌的行话是什么?
感谢您的帮助。
关键词是“线程” - 在集群中不起作用,但在单个多核机器中会很好(实际上,在任何类型的Windows上,一般都比生成多个进程要好得多 - Windows的进程与Linux进程相比非常重)。在C中不是那么容易,在Java中很容易 - 例如,从这里开始!
好点...你不能谷歌搜索它,除非你知道一些关键字。
C:google pthread,Posix Thread的缩写,尽管win32本机接口是非posix,请参阅在MSDN上创建线程。
Java:参见类线程
最后,您应该阅读一些关于函数式编程,参与者并发和不可变对象的信息。事实证明,在普通的旧共享内存中管理并发性是相当困难的,但是消息传递和函数式编程可以允许您使用本质上更安全的样式并避免并发问题。Java确实允许您以艰难的方式完成所有事情,其中数据是可变的共享内存,并且您拼命尝试手动联锁共享状态结构。但是您也可以从java中使用高级样式。也许从这篇JavaWorld文章开始:JVM上的Actors。