38得票6回答
跨CPU核心的rdtsc精度

我正在一个线程中发送网络数据包,并在运行在不同CPU核心上的第二个线程中接收回复。我的进程测量每个数据包的发送和接收之间的时间(类似于ping)。我使用rdtsc获取高分辨率,低开销的计时,这是我实现所需的。 所有的测量看起来都很可靠。但是,我还是担心rdtsc在不同核心之间的准确性,因为我...

38得票20回答
“尴尬并行”的反义词是什么?

根据维基百科的定义,"embarrassingly parallel"问题指的是将问题分成多个并行任务所需的工作量非常少或几乎为零。光线追踪通常被引用为一个例子,因为每个光线在原则上都可以被并行处理。 显然,有些问题要实现并行化要困难得多,甚至可能是不可能的。我想知道这些更难的情况下使用的术...

38得票5回答
Java是否支持多核处理器/并行处理?

我知道现在大多数处理器都有两个或更多核心,多核编程非常流行。Java中是否有利用此功能的方法?我知道Java有Thread类,但是我也知道这个类早在多核变得流行之前就存在了。如果我想在Java中利用多个核心,我应该使用哪个类/技术?

38得票2回答
多核CPU上的x86 LOCK问题

据说x86 ASM的"LOCK"指令前缀会导致所有核心在执行后续指令时被冻结? 我在一篇博客文章中读到了这个说法,但是我无法找到任何证明这是否属实的信息。

36得票21回答
我该如何编写无锁结构?

在我的多线程应用程序中,我发现有很严重的锁争用问题,这阻碍了在多个核心上实现良好的可扩展性。我决定使用无锁编程来解决这个问题。 我该如何编写一个无锁结构?

36得票10回答
哪些CPU架构支持比较和交换(CAS)?

只是好奇想知道哪些CPU架构支持比较和交换原语?

35得票6回答
易失性布尔型变量用于线程控制是否被认为是错误的?

作为我回答这个问题的结果,我开始阅读关于关键字volatile及其共识的相关信息。我看到有很多关于它的信息,其中一些旧的现在似乎是错误的,而许多新的则表示它在多线程编程中几乎没有任何用处。因此,我想澄清一个具体的用法(在SO上找不到确切的答案)。 我还想指出,我确实理解一般编写多线程代码的要...

35得票15回答
多核和并发-语言、库和开发技术

CPU架构已经发生了变化,多核心是一种趋势,将改变我们开发软件的方式。我在C、C++和Java中进行了多线程开发,我使用了各种IPC机制进行了多进程开发。传统的线程使用方法似乎并不容易让开发人员利用支持高并发度的硬件。 您知道哪些语言、库和开发技术可以帮助缓解创建并发应用程序的传统挑战?我显...

34得票7回答
为什么MPI被认为比共享内存更难,而Erlang被认为更容易,尽管它们都是消息传递?

最近有很多人对Erlang语言作为用于在多核上编写并行程序的语言表现出浓厚的兴趣。有人认为,与线程等主流共享内存模型相比,Erlang的消息传递模型更容易编程。 相反,在高性能计算领域,主导的并行编程模型是MPI,它也实现了消息传递模型。但在HPC世界中,这种消息传递模型通常被认为非常难以编...

30得票13回答
为什么C#中的多线程无法达到100% CPU利用率?

我正在开发一款处理多个请求的程序,但没有一个请求占用超过50%的CPU(目前我正在使用双核)。因此,我为每个请求创建了一个线程,整个处理过程更快。处理9个请求时,单个线程持续时间为02min08s,而同时工作3个线程的时间减少到01min37s,但仍然没有使用100%的CPU,只使用了大约50...