everything runs on one core

everything runs on one core

itabhiyanta的头像

hi

i hope you are doing good. i am trying to make an application using multiple CPUs connected via MPI over a network. I am able to compile my code. However i have an issues for which i seek your help through this forum.

The toolchain i am using is

Compiler XE for applications running on Intel(R) 64, Version 12.1.6.361 Build 20120821
Copyright (C) 1985-2012 Intel Corporation.

I wish to use the intel compilers with intel MKL and intel-mpi.

This is my link line that i got from the link line advisor

 -L$(MKLROOT)/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm

with compiler options

 -I$(MKLROOT)/include

The doubts i have are as follows

1. I have a code with C and fortran (that i compile with mpif90) files. It seems that the fortran object files are 64 bit and the c object files end up being 32 bit. this however does nto produce any errors. however i do not understand how this works, could someone please explain or point me to a reading source?

thanks and regards

rohit

2 帖子 / 0 new
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项
James Tullos (Intel)的头像

Hi Rohit,

What are you using to compile your C code?  I would recommend using mpiicc for the C code and mpiifort for the Fortran code.  This will add the appropriate paths and libraries for MPI to your compile and link lines.

As to why you would have 32 bit object files from C and 64 bit object files from Fortran, if you are using the Intel compilers this should only happen if you are explicitly using the 32 bit C compiler and the 64 bit Fortran compiler.  If you are using the MPI compiler scripts, use the -show argument to see the entire command line, and then use the Linux* command "which" to determine which compiler you are using.  If the path contains intel64, you are using the 64 bit compiler.  If the path contains ia32, you are using the 32 bit compiler.

Sincerely,
James Tullos
Technical Consulting Engineer
Intel® Cluster Tools

登陆并发表评论。