问题标签 [icc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - gcc、icc 或 Microsoft 的 C/C++ 编译器是否支持或了解有关 NUMA 的任何信息?
如果我有一个多处理器板,它具有缓存一致的 非统一内存访问 (NUMA),即单独的“北桥”,每个处理器都有单独的 RAM,那么任何编译器是否知道如何在不同的内存系统中自动传播数据,例如处理本地线程的进程主要是从与运行线程的处理器相关联的 RAM 中检索数据?
我有一个设置,其中 1 GB 连接到处理器 0,1 GB 连接到处理器 1,等等。最多 4 个处理器。在相干内存空间中,第一个处理器上 RAM 的物理内存是地址 0 到 1GB-1。对于第二个处理器,它是 1GB 到 2GB-1,依此类推。
任何编译器,或者malloc
具体来说,是否会将由特定内核上的进程分配的新内存与与该内核关联的物理 RAM 相关联?
unicode - Intel C 编译器和 L"" 前缀
如何在英特尔 C 编译器中定义俄语字符串?在 MSVS 2008 中,我这样做:
它有效。在 ICC 中不起作用。
gcc - ICC vs GCC - 优化和 CPU 架构
我有兴趣了解 GCC 在优化级别和迎合特定处理器架构方面与英特尔的 ICC 有何不同。我正在为 Linux 使用 GCC 4.1.2 20070626 和 ICC v11.1。
ICC 的优化级别(O1 到 O3)与 GCC 有何不同,如果它们完全不同的话?
ICC 能够专门满足不同的架构(IA-32、intel64 和 IA-64)。我读过 GCC 有-march
我认为类似的编译器选项,但我找不到要使用的选项列表。我使用的是 64 位的 Intel Xeon X5570。我是否可以使用任何其他 GCC 编译器选项来满足我的 64 位 Intel CPU 应用程序的需求?
linux - 当我将编译器从 GCC 3.4.2 切换到 GCC 4.4.2 或 ICC 时,我需要注意什么?
我正在使用的项目是使用 GCC 3.4.2 编译的。我正在考虑切换到更新的编译器。但是,如果风险不为人所知,该项目正处于我们不会做出任何重大改变的阶段。
切换编译器时会出现什么样的问题?
GCC 4.x 比 GCC 3.4.2 有什么好处?
ICC 比它有什么好处?
c++ - 如何在不使用 C++ 锁的情况下防止竞争条件?
如何在没有锁定或在 C++ 中使用互斥体/信号量的情况下防止竞争条件?我正在处理一个嵌套的 for 循环,在该循环中我将在数组中设置一个值:
或多或少,我想处理这个问题,以便我可以确保同时运行的不同线程不会同时写入 array[k]。关于如何解决这个问题的任何建议?
编辑:我在 Linux 机器上运行,我还必须使用 Intel 编译器。我将使用“icc”而不是“gcc”来编译代码。
c - MIPS 和英特尔 C 编译器之间的宏定义是否兼容?
我在 C 程序中定义的宏似乎有问题。
我编译这个软件并使用 MIPS 编译器成功运行它。
它构建正常,但在使用 icc 时会在运行时引发错误“分段错误”。
我在 64 位架构上编译了这两个架构(SGI 上的 MIPS,intel 平台上带有 -64 标志和 icc)。
我需要使用一些魔术开关来使其在两个系统上都能正常工作吗?我为英特尔编译器打开了警告,程序中调用宏的每个地方都会引发警告。通常是宏参数上的类型不匹配(int 到 char *)或类似的东西。
这是有问题的宏
这基本上用于调试 - 根据函数调用的数量打印到带有一组选项卡的日志文件。(tdepth = 标签深度)
我在手册页中做了一些检查。似乎 memalign 仅在 IRIX 上受支持。这可能是我的问题。我要追踪它。
c++ - ICC 11.1 对 ia64 上的 PTHREADS 有奇怪的行为
我正在使用 ICC 11.1 开发 ia64 机器。以下程序编译得很好:
当我编译它时icc test.cpp -o test
但是当我将文件的内容更改为:
我突然明白了:
icc -c test.cpp -o test.o test.cpp(6):错误:标识符“PTHREAD_STACK_MIN”未定义 printf("%d\n", PTHREAD_STACK_MIN); ^
test.cpp 的编译中止(代码 2)
谁能向我解释为什么?或者更重要的是:我如何才能解决这个问题,以便第二个代码示例也能编译?
c - 如何强制 OpenMPI 使用 GCC 而不是 ICC?是否需要重新编译 OpenMPI?
我有一个为 编写的用于并行计算的 C 代码,我想在一个显然使用viagcc
的集群上编译它。将代码更正为-friendly 似乎太费时间了,所以我想知道是否可以要求改用。我没有该集群的管理员权限,实际上我更希望不要弄乱原始配置。icc
mpicc
icc
OpenMPI
gcc
如果无法在 eg 中进行设置Makefile
,那么我希望可以OpenMPI
在我的主目录中进行编译,但我需要一些关于之后必须做什么的指导。你可以帮帮我吗?
更新1
Makefile
包含_
这里有一些 OpenMPI 文件
让我知道,如果我可以为您提供更多信息。
更新2
在Jeff 的帮助下OpenMPI
,我能够找到mpicc
但是,我无权编辑此文件,OPMI_CC = gcc
也没有更改编译器。
更新3
环境变量CC = gcc
没有帮助
更新4
...但export OMPI_CC=gcc
最终确实有所帮助(感谢 sharth)。总有一天我应该记住这些是不同的东西......
尽管创建了二进制文件,但我收到了以下再见消息
gcc - 使用带有 makefile 和 g++ 的 openmp
我正在使用最初使用 icpc 构建的 makefile 构建一个大型项目,现在我需要使用 g++ 运行它。
当它编译使用 openmp 的文件时,它使用 -c 标志,并且不使用任何库,因此它最终是串行的而不是 openmp。我看到的所有示例都没有使用这个 -c 标志。
有什么方法可以在不链接但使用 openmp 的情况下进行编译?
编辑:
我一直在使用 -lgomp 标志(并且库位于库路径上):
g++ -lgomp -c -w -O4 mainS.cpp
g++: -lgomp: 链接器输入文件未使用,因为链接未完成
编辑:我的老板在代码、makefile 和文档中犯了几个错误。很抱歉浪费了你的时间,至少比我花在上面的 5 个小时还少 =/
c++ - 是否允许编译器像带有 -O2 的英特尔 C++ 编译器那样删除无限循环?
以下测试代码在 VS 中使用调试或发布以及在 GCC 中都能正确运行。-O2
它也适用于带有调试的 ICC,但在启用优化时 ( )则不正确。
它应该停在while(q.isEmpty())
。但是,当-O2
在 ICC(发布)下启用时,它开始无限地“做某事”。
由于这是单线程程序并且 isEmpty()
应该被评估为true
,我找不到 ICC 应该以这种方式运行的理由?我想念什么吗?