Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7957 Discussions

compiling TAUCS with icl on Windows

Russ_Taylor
Beginner
653 Views
I am trying to compile TAUCS (http://www.tau.ac.il/~stoledo/taucs/) on Windows 7 64 with icl. I have the latest parallel studio installed on my machine.
I have been able to compile on Linux without a problem, but windows options are a bit strange. I would like to compile separate libraries for both 32 and 64 bit and single and multithreaded. metis.lib is already compiled and available.mingw and msys are also installed if needed.
I am new to windows and specific suggestions would be very helpful.
Here is the win32.mk file:
#########################################################
# WIN32 #
#########################################################
OBJEXT=.obj
LIBEXT=.lib
EXEEXT=.exe
F2CEXT=.c
# make sure there is a space after the backslash
PATHSEP=\\\\
DEFFLG=/D
CC = cl
CFLAGS = /nologo /O2 /W3 /D "WIN32" /MT
COUTFLG =/Fo
FC = $(CC)
FFLAGS = $(CFLAGS)
FOUTFLG = $(COUTFLG)
LD = $(CC)
LDFLAGS = /nologo /MT /F64000000
LOUTFLG = /Fe
RM = del /Q
AR = lib /nologo
AOUTFLG = /out:
RANLIB = echo
LIBBLAS = "C:\\Program Files\\Intel\\MKL60\\ia32\\lib\\mkl_s.lib"
LIBLAPACK =
LIBBLAS = external\\\\lib\\\\win32\\\\blas_win32.lib
LIBLAPACK = external\\\\lib\\\\win32\\\\lapack_win32.lib
LIBBLAS = external\\\\lib\\\\win32\\\\libf77blas.lib external\\\\lib\\\\win32\\\\libcblas.lib external\\\\lib\\\\win32\\\\libatlas.lib
LIBLAPACK = external\\\\lib\\\\win32\\\\liblapack.lib
LIBMETIS = external\\\\lib\\\\win32\\\\libmetis.lib
LIBF77 = external\\\\lib\\\\win32\\\\vcf2c.lib
LIBC =
thanks,
rt
0 Kudos
4 Replies
TimP
Honored Contributor III
653 Views
Without specific error messages, we're stabbing in the dark.
You appear to have a very old version of MKL which may not be compatible with your current compiler. A current compiler would inherently put its MKL on the PATHs if you have installed it.
If you disabled IPO for your linux build, you should try the similar /Qipo- option. The Microsoft /GL and Intel /Qipo default options are mutually incompatible. In order to use IPO, you would likely need to specify xiar and xilink tools explicitly in the Makefile.
0 Kudos
Russ_Taylor
Beginner
653 Views
Hi Tim,
Thanks for the quick reply. The attached makefile indeed came from 2003 version of taucs. I have paralle studio xe installed. I will give these options a try.
best,
RT.
0 Kudos
Brandon_H_Intel
Employee
653 Views
Yes, knowing the exact error you're seeing and the specific steps to reproduce would be helpful here. I'll try a build myself, but I won't be sure that I'm reproducing what you're seeing.
0 Kudos
Brandon_H_Intel
Employee
653 Views
OK, I just tried a build myself, simply switching "cl" with "icl" in the win32.mk makefile. I'm using Intel Parallel Studio 2011 SP1 in Microsoft Visual Studio 2010* compatibility mode for IA-32. I get three compiler errors that are similar to compiler errors that the Microsoft* compiler gives, and I think these are on tests that the makefile runs that are just for information purposes only and don't affect the library build. I get what looks like a valid library at the end of the build with no linker errors.

The first error is on taucs_blas_nounderscore_test.c. When this links, I get a "error LNK2019: unresolved external symbol _dgemm referenced in function _main". I think this is expected since there is a parallel "taucs_blas_underscore_test.c" that works fine.

The second is on taucs_c99_complex_test.c which uses (as the filename implies) C99 complex. For this to work, you'll need to add /Qstd=c99 to the compiler options in the makefile. Microsoft's compiler doesn't support C99 at all, so this fails on Microsoft as well.

The third is for taucs_cilk_test.c. This test uses a very old implementation of Cilk. The Intel compiler supports a newer implementation referred to as Cilk Plus that this test could likely be ported to. However, this code currently doesn't work, and it doesn't compile with Microsoft either.

If you see any problems that I haven't addressed here, let me know.
0 Kudos
Reply