什么是一个很好的多核64位"Hello World"程序?

Ale*_*x R 6 c algorithm performance 64-bit multicore

我最近把家用电脑升级为四核CPU和64位操作系统.我有一些以前使用C/C++的经验,我真的"痒"尝试练习一些64位CPU功能.什么是一个好的"Hello World"类型程序,它通过做一些在32位单核代码中完全不能正常工作的简单事物来演示64位多核功能?

我只是试图了解这些新CPU如何在极端情况下影响C/C++代码的性能.

jos*_*rry 2

OpenMP 将是一种使用 C++ 进行多核编程的简单方法。维基百科的示例并没有真正执行任何处理器密集型操作,但您可以用一些独立的、长时间运行的函数替换“cout”。

开放MP

就 64 位而言,大部分性能提升将来自于几个地方。

吞吐量增加,因为所有数据元素更宽,处理器可以在任何给定时钟周期内处理更多数据。看一下 Microsoft Exchange Server 的一些基准测试,它们现在已经转向支持 64 位,只是因为吞吐量的增长令人难以置信。

更多的寄存器,由于64位架构有大量的寄存器,大多数函数参数和返回值都可以使用寄存器来传递。

在具有某些调用约定的x86 ABI 中,一个或两个参数可以通过寄存器传递,其余参数必须压入堆栈。使用像 cdecl 这样的常见调用约定,不会将单个参数或返回值放置在寄存器中。由于堆栈位于主内存中,这可能会对性能造成很大影响。