我试图编译一个非常简单的 MPI hello_world:
#include <stdio.h>
#include <mpi.h>
int main(int argc, char *argv[]) {
int numprocs, rank, namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Get_processor_name(processor_name, &namelen);
printf("Process %d on %s out of %d\n", rank, processor_name, numprocs);
MPI_Finalize();
}
并遇到以下问题:
Catastrophic error: could not set locale "" to allow processing of multibyte characters
我真的不知道如何解决。
尝试定义环境变量
LANG=en_US.utf8
LC_ALL=en_US.utf8
假设您使用的是 unix,也可以在命令行中尝试
man locale
和 locale -a
,然后在 google 上搜索 “utf locale” 和类似搜索。
重新定义环境变量 LANG 为我解决了问题,正如所指出的(设置 LANG=en_US.utf8)。
我可能会说,我正在连接到外部服务器,并且在使用英特尔编译器编译代码时遇到问题。