jjzjj

multicore

全部标签

c# - .NET 4 垃圾收集器的可扩展性

我最近对​​.NET4垃圾收集器进行了基准测试,从多个线程集中分配。当分配的值被记录在一个数组中时,我没有像预期的那样观察到可扩展性(因为系统争用对共享老年代的同步访问)。然而,当分配的值被立即丢弃时,我惊恐地发现也没有可扩展性!我原以为临时情况几乎是线性扩展的,因为每个线程都应该简单地删除nurserygen0并重新开始而不争用任何共享资源(没有任何东西幸存到老一代,也没有L2缓存未命中,因为gen0很容易适合L1缓存).例如,thisMSDNarticlesays:Synchronization-freeAllocationsOnamultiprocessorsystem,gene

c# - 在 GPU 上运行 MSIL

也许是个疯狂的问题,但是否可以在GPU上运行线程?我问的原因是我要执行一些非常复杂的计算(主要是数学和数组),想看看使用GPU是否可以提高速度。哦,我想在C#或F#中执行此操作:)谢谢 最佳答案 此处有关于该主题的摘要:http://microsoft.cs.msu.su/Projects/Documents/ILShaders/ilshaders.pdf--[[死链接]]但我还没有找到源链接。这是谷歌翻译的项目页面:http://translate.google.co.uk/translate?hl=en&sl=ru&u=http

php - 我可以从 PHP 调用多核 LAMP 机器上的多个 FFMPEG 进程吗?

我正在使用PHP通过exec()调用FFMPEG命令。使用从另一个PHP脚本调用启动此命令的脚本proc_close(proc_open('php/phpdirectory/process.php&',array(),$foo));这很好用。ffmpeg命令被调用并“在后台”运行,留下第一个脚本返回给用户,在这种情况下继续上传文件。如果我使用多核机器怎么办?我将如何着手优化事物以便我可以为每个核心调用一个ffmpeg进程?或者多核机器进程是否会在内核之间拆分工作并更快地完成单个进程?有人吗? 最佳答案 FFMPEG进程的调度是由内核

java - 与 Java 或其他非函数式语言相比,Scala 究竟如何利用更多的核心?

我最近在听MartinOdersky的视频,他试图解释函数式语言(例如Scala,但当然不一定Scala)相对于OOP或过程语言的基本优势。p>换句话说,他解释说Moore'sLaw最近让我们失望了,因此为了让处理器“更快”,CPU制造商没有将内核中的晶体管数量增加一倍,而是简单地提供了更多的内核。这反过来又使CPU能够被并发/多线程应用程序更充分地利用。因此,主要的收获是:应用程序的并发性越高,其代码片段就越多地同时在不同的内核上运行,并且CPU上的内核越多,程序的整体执行速度就越快。到目前为止,还不错。他没能解释(或者更可能是我没能理解)的是,为什么像Scala这样的函数式语言比其

java - 多线程不比单线程快(简单循环测试)

我正在试验一些多线程结构,但不知何故,多线程似乎并不比单线程快。我将其缩小为一个非常简单的测试,其中包含一个嵌套循环(1000x1000),系统只在其中计算。下面我贴出了单线程和多线程的代码以及它们是如何执行的。结果是单线程完成循环大约需要110ms,而两个线程也需要大约112ms。我不认为问题是多线程的开销。如果我只将两个Runnable中的一个提交给ThreadPoolExecutor,它的执行时间是单线程的一半,这是有道理的。但是添加第二个Runnable会使它慢10倍。两个3.00Ghz内核都在100%运行。我认为这可能是特定于pc的,因为其他人的pc在多线程上显示了双倍速度的

java - 带有 native 代码的多核 Java 程序

我在Java程序中使用nativeC++库。Java程序是为使用多核系统而编写的,但它无法扩展:最好的速度是在6个内核左右,即添加更多内核会减慢速度。我的测试表明,对native代码的调用本身会导致问题,因此我想确保不同的线程访问native库的不同实例,从而消除并行任务之间的任何隐藏(内存)依赖性。换句话说,而不是静态blockstatic{System.loadLibrary("theNativeLib");}我想为每个线程动态加载库的多个实例。主要的问题是这是否可能。然后怎么做!注意事项:-我在Java7fork/join以及Scala/akka中都有实现。因此,感谢每个平台的任

java - 多核环境中的 BufferedReader

我有8个文件。每一个大约1.7GB。我正在将这些文件读入一个字节数组,并且该操作足够快。然后按如下方式读取每个文件:BufferedReaderbr=newBufferedReader(newInputStreamReader(newByteArrayInputStream(data)));在顺序意义上使用单核进行处理时,大约需要60秒才能完成。但是,当将计算分布在8个独立的核心上时,每个文件花费的时间远远超过60秒。由于数据都在内存中并且没有执行任何IO操作,因此我假设每个核心处理一个文件的时间不会超过60秒。因此,总共8个文件应该在60多秒内完成,但事实并非如此。我是否缺少有关Bu

Java 多核处理

我想了解Java的多核处理。据我了解,Threading是多核的一种,我觉得自己掌握得很好。我知道还有其他方法可以进行多核处理,但我不知道它们是什么。有谁知道任何好的简单教程/示例,或者有他们自己的教程/示例可供我查看以了解有关Java中多核处理的更多信息?我找到的所有教程都对图表、图形、背景信息等过于深入,这确实不是我的编程学习风格。我更喜欢快速简单的东西。 最佳答案 使用多核的主要方式是使用多线程。如果通过HighLevelConcurrencyObjects使用这些最简单的方法你应该熟悉的。这使用线程,但您不必直接处理它们。另

java - 在 Java 中实现多核 - 如何实现?

Java实现多核最简单的方法是什么?我的意思是,要特别指出执行项目某些部分的核心是什么,所以旧的“普通”Java线程不是一个选项。到目前为止,有人建议我使用JConqurr(这是一个用于java多核编程的Eclipse工具包)、JaMP(它为OpenMP扩展Java)和MPJexpress,我对它们了解不多。您认为以上哪项最好,或者您有其他建议?最好以某种方式测量性能提升/增益,但不是唯一的。任何帮助将不胜感激。谢谢,二十九。 最佳答案 尽管用Java编写多线程代码很容易,但Java标准运行时中没有任何内容可以让您一般地告诉JVM或

java - Java 的数据流编程 API?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我正在寻找适用于Java的数据流/并发编程API。我知道有DataRush,但它不是免费的。我特别感兴趣的是多核数据处理,而不是分布式,这排除了MapReduce或Hadoop.有什么想法吗?谢谢,罗洛