Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"make clean; make stencil=iso3dfd" error #240

Closed
mengshanfeng opened this issue Dec 3, 2019 · 13 comments
Closed

"make clean; make stencil=iso3dfd" error #240

mengshanfeng opened this issue Dec 3, 2019 · 13 comments
Assignees

Comments

@mengshanfeng
Copy link

when i try: make clean; make stencil=iso3dfd
the following message occurred(i omit some of the message for it is really too much...):

make -C src/compiler YASK_OUTPUT_DIR=/yask-master default
make[1]: Entering directory 'yask-master/src/compiler'
Binary /yask-master/bin/yask_compiler.exe has been built.
make old-code-check
......
YASK -- Yet Another Stencil Kit
YASK Stencil Compiler Utility
Copyright (c) 2014-2019, Intel Corporation.
Version: 3.03.00
Stencil-solution name: iso3dfd
Stencil radius: 8
Stencil-solution description: iso3dfd radius 8
Output target: avx2
Num vars defined: 2
Num equations defined: 1
Var: p(t, x, y, z)
Var: v(x, y, z)
Step dimension: t
Domain dimension(s): x, y, z
Number of SIMD elements: 8
No explicitly-requested vector-folding.
Vector-fold dimension(s) and point-size(s): x=1 * y=8 * z=1
Cluster dimension(s) and multiplier(s): x=1 * y=1 * z=1
Cluster dimension(s) and point-size(s): x=1 * y=8 * z=1
No misc dimensions used

Processing 1 stencil equation(s)...
Analyzing for dependencies...
Finding transitive closure of dependencies...
Topologically ordering equations...

Partitioning 1 equation(s) into bundles...
Collapsing dependencies from equations and finding transitive closure...
Topologically ordering bundles...
Created 1 equation bundle(s):
equation-bundle 'stencil_bundle_0' w/o domain condition w/o step condition:
Contains 1 equation(s).
Updates the following var(s): p.
Stats across 1 equation-bundle(s):
Expression stats for scalar & vector equation-bundle(s):
84 node(s).
0 node pair(s).
52 var read(s).
1 var write(s).
61 FP math operation(s).
Expression stats after applying common subexpr elimination to scalar & vector equation-bundle(s):
83 node(s).
0 node pair(s).
51 var read(s).
1 var write(s).
61 FP math operation(s).
No changes after applying commutative recombination to scalar & vector equation-bundle(s).
No changes after applying common subexpr elimination to scalar & vector equation-bundle(s).
No changes after applying function pairing to scalar & vector equation-bundle(s).

Partitioning 1 bundle(s) into packs...
Collapsing dependencies from bundles and finding transitive closure...
Topologically ordering packs...
Created 1 equation bundle pack(s):
equation bundle-pack 'stencil_pack_0' w/o step condition:
Contains 1 bundle(s): stencil_bundle_0.
Updates the following var(s): p.

Constructing cluster of equations containing 1 vector(s)...
Stats across 1 equation-bundle(s):
Expression stats for cluster equation-bundle(s):
84 node(s).
0 node pair(s).
52 var read(s).
1 var write(s).
61 FP math operation(s).
Expression stats after applying common subexpr elimination to cluster equation-bundle(s):
83 node(s).
0 node pair(s).
51 var read(s).
1 var write(s).
61 FP math operation(s).
No changes after applying commutative recombination to cluster equation-bundle(s).
No changes after applying common subexpr elimination to cluster equation-bundle(s).
No changes after applying function pairing to cluster equation-bundle(s).

Generating 'avx2' output...
YASK Stencil Compiler: done.
/bin/sh: 1: gindent: not found
/bin/sh: 2: indent: not found
note: /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_stencil_code.hpp is not properly indented because no indent program was found.
mkdir -p -v /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen
perl /yask-master/utils/bin/gen_loops.pl -output /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_rank_loops.hpp -ndims awk '/NUM_STENCIL_DIMS/ {print $NF}' /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_stencil_code.hpp -inVar rank_idxs " loop(1 .. N-1) { call(calc_region(bp)); }"
info: generating scanning code for 4-D vars...
info: generating scan over dimensions 1, 2, 3...
note: cannot find [g]indent utility--output will be unformatted.
info: output in '/yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_rank_loops.hpp'.
mkdir -p -v /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen
perl /yask-master/utils/bin/gen_loops.pl -output /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_region_loops.hpp -ndims awk '/NUM_STENCIL_DIMS/ {print $NF}' /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_stencil_code.hpp -inVar region_idxs -ompConstruct 'omp parallel for schedule(dynamic,1) proc_bind(spread)' " omp loop(1 .. N-1) { call(calc_block(bp, region_shift_num, nphases, phase, rank_idxs)); }"
info: generating scanning code for 4-D vars...
info: using OpenMP on following loop.
info: generating scan over dimensions 1, 2, 3...
note: cannot find [g]indent utility--output will be unformatted.
info: output in '/yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_region_loops.hpp'.
mkdir -p -v /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen
perl /yask-master/utils/bin/gen_loops.pl -output /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_block_loops.hpp -ndims awk '/NUM_STENCIL_DIMS/ {print $NF}' /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_stencil_code.hpp -inVar adj_block_idxs " loop(1 .. N-1) { call(calc_mini_block(region_thread_idx, bp, region_shift_num, nphases, phase, nshapes, shape, bridge_mask, rank_idxs, region_idxs, block_idxs)); }"
info: generating scanning code for 4-D vars...
info: generating scan over dimensions 1, 2, 3...
note: cannot find [g]indent utility--output will be unformatted.
info: output in '/yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_block_loops.hpp'.
mkdir -p -v /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen
perl /yask-master/utils/bin/gen_loops.pl -output /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_mini_block_loops.hpp -ndims awk '/NUM_STENCIL_DIMS/ {print $NF}' /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_stencil_code.hpp -inVar adj_mb_idxs -ompConstruct 'omp for schedule(static,1) nowait' " omp loop(1 .. N-1) { call(CALC_SUB_BLOCK); }"
info: generating scanning code for 4-D vars...
info: using OpenMP on following loop.
info: generating scan over dimensions 1, 2, 3...
note: cannot find [g]indent utility--output will be unformatted.
info: output in '/yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_mini_block_loops.hpp'.
......
compilation aborted for /yask-master/src/kernel/lib/factory.cpp (code 4)
Makefile:506: recipe for target '/yask-master/build/kernel/yask_kernel.iso3dfd.avx2/obj/factory.o' failed
make[1]: *** [/yask-master/build/kernel/yask_kernel.iso3dfd.avx2/obj/factory.o] Error 4
make[1]: Leaving directory '/yask-master/src/kernel'
Makefile:98: recipe for target 'default' failed
make: *** [default] Error 2

@chuckyount chuckyount self-assigned this Dec 3, 2019
@chuckyount
Copy link
Contributor

@mengshanfeng: Unfortunately, I can't figure out from your output what the actual error is. Maybe the error message was cut out of the output. Can you capture all the stdout and stderr, put that in something like https://pastebin.com/ and put a link to it here? Thanks.

@intel intel deleted a comment from mengshanfeng Dec 3, 2019
@mengshanfeng
Copy link
Author

https://pastebin.com/nEt579kS
@chuckyount
https://pastebin.com/nEt579kS
i paste the whole message here and Many thanks!

@intel intel deleted a comment from mengshanfeng Dec 4, 2019
@chuckyount
Copy link
Contributor

This seems very odd indeed. The file /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_stencil_code.hpp is created and then successfully used by a number of scripts. But then the compiler fails with the message
/yask-master/src/kernel/lib/yask_stencil.hpp(38): catastrophic error: cannot open source file "/yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_stencil_code.hpp". It looks like the file disappeared or is somehow unreadable by the compiler.

Assuming you haven't changed anything, can you run gcc -v; mpiicc -v; ls -l /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen and paste the results?

@mengshanfeng
Copy link
Author

@chuckyount Hi,
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu118.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1
18.04.1)

$ mpiicc -v
mpiicc for the Intel(R) MPI Library 2019 Update 3 for Linux*
Copyright 2003-2019, Intel Corporation.
icc version 19.0.3.199 (gcc version 7.4.0 compatibility)

$ ls -l /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen
total 228
-rwxrwxrwx 1 5335 Dec 4 16:39 yask_block_loops.hpp
-rwxrwxrwx 1 9127 Dec 4 16:39 yask_layout_macros.hpp
-rwxrwxrwx 1 26232 Dec 4 16:39 yask_layouts.hpp
-rwxrwxrwx 1 5014 Dec 4 16:39 yask_mini_block_loops.hpp
-rwxrwxrwx 1 4912 Dec 4 16:39 yask_misc_loops.hpp
-rwxrwxrwx 1 4826 Dec 4 16:39 yask_rank_loops.hpp
-rwxrwxrwx 1 5125 Dec 4 16:39 yask_region_loops.hpp
-rwxrwxrwx 1 142428 Dec 4 16:39 yask_stencil_code.hpp
-rwxrwxrwx 1 3746 Dec 4 16:39 yask_sub_block_loops.hpp
-rwxrwxrwx 1 942 Dec 4 16:39 yask_var_code.hpp

@chuckyount
Copy link
Contributor

I just can't figure out what's going on. The file "/yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_stencil_code.hpp" exists and has ample read permissions according to your output above, but the compiler error says it cannot open this file. As far as I know, nobody else has had this issue. We need to figure out why the compiler cannot open the file. There will be a lot of output, but you can try running the following to help debug why the file cannot be opened:
cd src/kernel; strace -f mpiicc -g -std=c++11 -Wall -I/yask-master/include -I/yask-master/include/aux -I/yask-master/src/kernel/lib -I/yask-master/src/common -I/yask-master/src/contrib/coefficients -I/yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen -xCORE-AVX2 -debug extended -restrict -O3 -fopenmp -DUSE_INTRIN256 -DUSE_AVX2 -DYK_CODE_FILE=/yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_stencil_code.hpp -DALLOW_NEW_VARS=1 -DUSE_MPI -x c++ -fPIC -c -o /yask-master/build/kernel/yask_kernel.iso3dfd.avx2/obj/factory.o /yask-master/src/kernel/lib/factory.cpp
There should be a detailed error message somewhere near the end similar to this:
open("/yask-master/build/kernel/yask_kernel.iso3dfd.avx2/gen/yask_stencil_code.hpp", O_RDONLY) = -1 ENOENT (No such file or directory)
If you want, you can just put all the output into pastebin, and I can look at it.

@mengshanfeng
Copy link
Author

@chuckyount
Many thanks!
strace.txt

@chuckyount
Copy link
Contributor

This run failed with "could not checkout FLEXlm license". Not related to the earlier problem, I assume.

@mengshanfeng
Copy link
Author

@chuckyount
Aha, i do just have a evaluation of icc (or FLEXlm ), and it seemes that it expired...

@chuckyount
Copy link
Contributor

Can you try building with gcc using "make clean; make YK_CXX=gcc mpi=0 stencil=iso3dfd" just to see if it works?

@mengshanfeng
Copy link
Author

@chuckyount
i tried, it seems it failed again...
gcc_error.txt

@chuckyount
Copy link
Contributor

Sorry; try g++ specifically: "make clean; make YK_CXX=g++ mpi=0 stencil=iso3dfd"

@mengshanfeng
Copy link
Author

mengshanfeng commented Dec 10, 2019

@chuckyount
Many thanks!
yask_kernel.iso3dfd.avx2.make-report.txt
g++.txt

it seems that it works!

@chuckyount
Copy link
Contributor

Yes, it looks like it works with g++. You can also try clang++. Perhaps there was some issue with your installation of icc or Intel MPI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants