์๋ ,
์ด๊ฒ์ Lapack 3.8.0๊ณผ ํจ๊ป์ ๋๋ค.
lapack 3.8.0 ๋ฐ ์ต๊ทผ gfortran์ ์ฌ์ฉํ๋ xeigtstz์์ segfault๊ฐ ๋ฐ์ํฉ๋๋ค.
./EIG/xeigtstz < nep.in > znep.out 2>&1
/bin/sh: Zeile 1: 9026 Speicherzugriffsfehler(Speicherabzug geschrieben) ./EIG/xeigtstz < nep.in > znep.out 2>&1
์คํ ์ ํ์ด ๊ธฐ๋ณธ๊ฐ์ธ 8192kb์์ 81920kb(
๋ด๊ฐ ์๋ํ ์ฒซ ๋ฒ์งธ ๊ฐ).
https://github.com/Reference-LAPACK/lapack/issues/276 ์ ๋ณต์ ๋ณธ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
gfortran9๋ (ํนํ) TESTING/EIG/zhet21.f ๋ผ์ธ 304(1์์ N-1๊น์ง ์คํ๋๋ J์์ ๋ฃจํ๋ฅผ ์คํํ๊ณ ๋ฐฐ์ด ์์ U(1, J-1 )์ ์ก์ธ์ค)์์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์ก์ธ์ค์ ํ๋๊ทธ๋ฅผ ์ง์ ํฉ๋๋ค. ์์ผ). ์ด๊ฒ์ด ์ค์ ๋ก ์ด ๋ฌธ์ ์ ์ ์ผํ ์์ธ์ธ์ง๋ ํ์คํ์ง ์์ง๋ง...
ํธ์ง: ๋ด ๊ด์ฐฐ์ ๊ด๋ จ์ด ์์ต๋๋ค. (์ฌ์ค ์ด๋ฏธ #333์ ์ด์๋ค๋ ์ฌ์ค์ ๋์ณค์ต๋๋ค) xeigtstz๋ https://github.com/xinyi/OpenBLAS/ ์ ์ด๋ฏธ ์ธ๊ธ๋ NEP ํ
์คํธ๋ฅผ ์ํด ์คํ์ ์ฝ 10MB๋ฅผ ํ ๋นํ๋ ค๊ณ ์๋ํฉ๋๋ค.
๊ธฐ๋ณธ 8192 ๋์ ulimit -s 16384
๋ฅผ ์ค์ ํ๋ฉด ์ด ๋ฌธ์ ๋ ํด๊ฒฐ๋์์ต๋๋ค.
์ฌ๊ธฐ #85์๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์คํ ์ ํ์ ๋์ด๋ ๊ฒ์ด์ง๋ง ํ ์คํธ์ด๋ฏ๋ก ํ ํ ๋น์ด ๋ ๋์ ์๋ฃจ์ ์ด ์๋๊น์?
๋๋ ๊ทธ๊ฒ์ด '์ฌ๊ท์ ' ์ต์ (์ค๋ ๋ ์์ ์ ์ํด ํ์)์ผ๋ก ์ธํด ์คํ์์ ๋๋๋ ํ ๋น ๊ฐ๋ฅํ ๋ฐฐ์ด์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์์ง ์๋ํ๋ ์๋ฃจ์ ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค.
@weslleyspereira ๋ -frecursive ์ต์ ์์ด zchkee.f๋ง ์ปดํ์ผํ๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ํ์ผ(ํนํ liblapack.a)์ -frecursive ์ต์ ์ ์ฌ์ฉํ์ฌ ์ปดํ์ผ๋์ง๋ง zchkee.f๋ -frecursive ์ต์ ์์ด ์ปดํ์ผ๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ํธ๋ฆญ์ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐ/ํฌ๋งํฉ๋๋ค. ์ฐ๋ฆฌ๋ ํ ์คํธ ํ ๊ฒ์ ๋๋ค. -frecursive๋ฅผ ์ฌ์ฉํ์ฌ LAPACK์ ์ปดํ์ผํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด์ zchkee.f ์์ด ์ปดํ์ผํ ์ ์์ต๋๋ค. ๊ด์ฐฎ์๊ฑฐ์ผ. CMake์ make๋ ์ข ๋ ๋ชป์๊ฒผ์ ๊ฒ์ ๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ์๋ก์ด ํ ์คํธ ์ค์ํธ์ ๋ํ ๊ธฐํ์ด ์ค๋๋์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ์ง๊ธ์ ๊ทธ๊ฒ์ ๋ชป๋๊ฒ ๋ง๋ค๊ณ ์๋ก์ด ํ ์คํธ ์ค์ํธ์ ์ง์คํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
OpenMP๋ ์ฌ์ฉํ์ง ์๋ ํ ์ ๋ฅผ ์ํด ์ผํ์ง๋ง ํ์๋ ๋ถํํ๋ -frecursive๋ฅผ ์๋ฏธํฉ๋๋ค.
(Makefile์์ filter_out์ ์ฌ์ฉํ์ฌ FFLAGS์์ frecursive/Mrecursive๋ฅผ ์ ๊ฑฐํ ์ ์์ผ๋ฏ๋ก ์๋ก์ด ์ถ์
ํจ์ ๋ง์ง ์์)
OpenMP๋ ์ฌ์ฉํ์ง ์๋ ํ ์ ๋ฅผ ์ํด ์ผํ์ง๋ง ํ์๋ ๋ถํํ๋ -frecursive๋ฅผ ์๋ฏธํฉ๋๋ค.
์. ์, ์ ์ฌ์ ์ธ ๋ฌธ์ ์ ๋๋ค.
(Makefile์์ filter_out์ ์ฌ์ฉํ์ฌ FFLAGS์์ frecursive/Mrecursive๋ฅผ ์ ๊ฑฐํ ์ ์์ผ๋ฏ๋ก ์๋ก์ด ์ถ์ ํจ์ ๋ง์ง ์์)
์, ์ข์ ์๊ฐ์ด์ผ. Makefile์ filter_out์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ ํ ๋ชจ๋ฆ ๋๋ค. ๋ ๋์ ์กฐ์ฌ. ํ ๊ณ ๋ง์.
TESTING/EIG/Makefile, include ../../make.inc
์ถ๊ฐ ํ
FFLAGS := $(filter-out -frecursive -Mrecursive,$(FFLAGS))
FFLAGS_DRV := $(filter-out -frecursive -Mrecursive,$(FFLAGS_DRV))
LDFLAGS := $(filter-out -frecursive -Mrecursive,$(LDFLAGS))
cmake์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์
๋๋ค.
string(REGEX REPLACE "-(fM)recursive" "" FFLAGS ${FFLAGS})
(ํ
์คํธ๋์ง ์์)
@martin-frbg ๊ฐ์ฌํฉ๋๋ค! ๋๋ ์ง๊ธ ๊ทธ๊ฒ์ ํ ์คํธ ํ ๊ฒ์ด๋ค