草庐IT

java - 使用多核处理器是否需要多线程算法?

我只是想知道如果算法必须使用多核处理器,我们是否真的需要多线程算法,或者即使我们的算法是顺序的,jvm是否会使用多核处理器?更新:相关问题:Muti-Threadedquickormergesortinjava 最佳答案 我不相信任何当前的生产JVM实现都执行自动多线程。它们可能使用其他核心进行垃圾收集和其他一些内务管理,但如果您的代码是按顺序表示的,则很难自动并行化它并仍然保持精确的语义。可能有一些实验性/研究型JVM试图并行化JIT可能发现的并行性令人尴尬的代码区域,但我还没有听说过用于生产系统的类似情况。即使JIT确实发现了这

c# - 应用程序如何在 .NET 或 Java 中使用多个内核或 CPU?

在.NET或Java中启动线程或进程时,有没有办法选择在哪个处理器或内核上启动?共享内存模型在这种情况下如何工作? 最佳答案 如果您使用多线程,操作系统会自动处理多核问题。 关于c#-应用程序如何在.NET或Java中使用多个内核或CPU?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/37089/

java - Lambda 表达式对多核系统有哪些优势?

JavaTutorials对于Lambda表达式,说明如下:ThissectiondiscussesfeaturesincludedinProjectLambda,whichaimstosupportprogramminginamulticoreenvironmentbyaddingclosuresandrelatedfeaturestotheJavalanguage.我的问题是,根据多核系统和并发/并行编程,我使用Lambda表达式有哪些具体优势? 最佳答案 并行性很容易实现,例如如果你有一个集合并且你实现了一个lambda:co

c++ - 如何用c/c++创建一个hello world云计算应用程序

有人知道这么简单的helloworld应用程序吗? 最佳答案 http://www.zircomp.com/sites/default/files/doxygen/znet_5.0/group__js__tutorial.html这正是分布式计算的“helloworld”,本教程背后的想法是专注于多核和分布式核心编程的简单性和统一性。云只是另一种硬件产品,只要您的应用程序可以变得灵活它非常适合云。 关于c++-如何用c/c++创建一个helloworld云计算应用程序,我们在StackO

c++ - 使用 QueryPerformanceCounter() 倒计时

我在thispost中找到了有关使用QueryPerformanceCounter的有用信息但我面临一个我还没有找到答案的问题。我正在为WindowsCE6.0开发一个应用程序,需要GetTickCount可以提供的更好的分辨率。这就是我选择QueryPerformanceCounter函数的原因。我观察到我得到的计数器值来回变化。虽然这不是最终的应用程序,但这个小例子说明了问题:inti;BOOLbRet;LARGE_INTEGERliCounter;for(i=0;i它打印一系列100个计数器值,这些值预计是递增的。然而,有一些计数器值相对于先前的值递减。例如:...计数器值:65

c++ - 将 OpenMP 与 C++ 结合使用的算法库

我在GNU/Linux桌面上使用C++编程语言和GCC。我正在努力实现C++中的一些PRAM并行算法。据我了解,在多核CPU上使用OpenMP或多或少有助于模拟CREWPRAM算法。许多复杂的PRAM算法,涉及并行前缀和、排序等操作,对全局地址空间等中的vector执行元素明智的操作。不知何故,在谷歌搜索大约15分钟后,似乎没有提供此功能的库,即一些开箱即用的基本并行算法或数据结构,如标准模板库。谁能列出任何这样的库?编辑:本质上,我需要的是一个类似于ThrustLibrary的OpenMP,它用于CUDA世界。http://thrust.github.com/

c++ - 具有自动超频功能的多核处理器上的准确 C/C++ 时钟?

我研究了几个主题,试图获得一些关于如何使用C或C++制作可靠时钟的想法。然而,我也看到一些函数使用处理器的滴答声和每秒滴答声来计算最终结果,我认为这可能是像我这样的自动超频CPU上的问题。我也看到其中一个过一段时间就重置了,所以不是很可靠。我们的想法是制作一个(最好是跨平台的)时钟,就像游戏中的时钟一样,精度优于一秒,以便能够将“当前session”中耗时与保存的时间相加在程序结束时。这将计算在没有游戏时钟的主机游戏上花费的时间,并且从长远来看可能会将其集成到实际的PC游戏中。它应该能够在不占用太多或全部CPU时间(或多核CPU的单核时间)的情况下运行,因为将所有这些资源仅用于时钟是非

c++ - c++ operator |= atomic 是多核处理器吗?

我目前正在与另一位开发人员争论,他向我保证以下c++语句是原子的:x|=0x1;//xissharedbymultiplethreads在Release模式下用VC++11编译生成以下程序集:01121270ordwordptrds:[1124430h],1另一个开发者说位操作是原子的,因此是线程安全的。我对英特尔i7处理器的体验与此相反。我认为对于多核处理器,任何共享内存写入都是不安全的,因为有单独的处理器缓存。但经过更多研究后,似乎x86处理器提供了一些与处理器/内核之间的内存操作顺序相关的保证,这表明它应该是安全的......同样,这不是根据我的经验,情况似乎是这样。由于我没有关

c++ - 如果我只需要它在其他线程中的值,我是否应该在一个线程中锁定一个变量,如果我不这样做,为什么它会起作用?

我知道thisquestion,但我相信我的担忧非常不同。我最近使用线程和OpenGL创建了一个SDL应用程序。我有一个循环运行的线程,它不断更新我绘制到屏幕上的对象的状态。状态很简单,就是一个boolean数组(数组值为true的时候画,为false的时候不画)。目前,我的任何变量都没有互斥锁,一切正常。即使在一次绘制之间只更新了状态数组的一半,帧率也比更新率高得多(或至少等于),因此更新一半的状态是可以接受的。现在,我最初开始在使用中断的嵌入式系统上研究与此类似的想法。每隔一段时间,就会触发一个中断,更新状态数组,然后继续执行。现在我在多核台式机上,同时更新阵列,我想知道为什么没有

ARM多核调度器DSU

1.背景        从A75开始,ARM提出了一个新的多核心管理系统单元,叫做DSU(DynamIQSharedUnit)。DSU的核心功能是控制CPU内核,使其成簇Cluster使用,簇内每一个核心可以单独开关、调整频率/电压,能效表现更佳,甚至制造商是可以将不同核心以不对等的数量放到一个簇内,兼顾成本与性能。        再有就是L3缓存的共享。DSU能够使用CCI、CCN或是CMN不同总线技术,把CPU与SoC里其它单元(GPU、Modem、内存)高速连接起来;假如它拥有4MB三级缓存,能以动态方式分配缓存给每个核心,比如说Cortex-A75×1+Cortex-A55×7下,可以