카테고리 없음

Intel Fortran on Ubuntu 18.04

레드얼더 2018. 5. 9. 03:46

[잊어버릴까봐 적어둠]

대학원 이후론 써본 적이 없는 포트란을 시작해보려니 사방이 깜깜하다. 검색결과 Linux엔 Gnu Fortran과 Intel Fortran을 비롯하여 몇개의 포트란 컴파일러가 있다. 우분투 18.04를 설치하는 김에 같이 설치해 봤다.




gfortran - GNU Fortran 설치


일단 먼저 build-essential 패키지를 설치한다.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake pkg-config

이제 포트란을 설치한다.
sudo apt-get install gfortran

설치되었는지 보자.
which f77
which f95



NetBeans에 gfortran 설정


자동으로 구성되겠지만 그렇지 않다면 입력해준다. 아래 창은 메뉴 Tools -> Options으로 연다.




Intel Fortran 구입과 설치


32-bit libraries 설치
64비트 리눅스에서 인텔 parallel studio 사용하기 위해서는 몇가지 32 비트 라이브러리를 설치해주어야 한다. 앞서 안드로이드 스튜디오 설치했다면 이미 해당 32 비트 라이브러리도 설치되어 있을 것이다. 왜냐면 안드로이드 스튜디오도 이들 라이브러리가 필요하기 때문이다.


터미널을 열고
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386


이제 인텔 포트란을 가져온다. 인텔 포트란은 무료가 아니다. 라이센스를 구입을 해야한다. 단, 학생, 교수, 또는 오픈소스 기여자일 경우 무료로 사용할 수 있다. 일단 여기(클릭)로 들어가서 인텔 패러렐 스튜디오 XE 30일 시험버전을 받아온다. 인텔 패러렐 스튜디오 XE에는 포트란을 비롯하여 C/C++과 관련 툴들이 포함되어 있다.


여차 저차해서 다운받은 파일 이름은...
parallel_studio_xe_2018_update2_cluster_edition.tgz

이걸 /opt에 풀어준다.
sudo tar -xvzf '다운받은 파일이름' -C /opt

풀어진 디렉토리로 가서 설치 스크립트를 실행하면 다음 창이 뜬다.
sudo ./install_GUI.sh



설치 준비 과정 중에 지원되지 않는 OS며, 일부 툴이 Ubuntu 18.04와는 호환되지 않는다는 경고가 떴는데, 그거야 어쩔 수 없으니 무시하고 설치를 진행하였다. 재미삼아 설치해보는 Intel Fortran과 Ubuntu 호환성때문에 Ubuntu 18.04를 지우고 16.04로 돌아갈 수 없는 일 아닌가?



Eclipse 설치


다양한 구성의 Eclipse가 있는데 Fortran 개발자는 반드시 Eclipse for Parallel Application Developers를 내려 받아야 한다. Eclipse 다운로드 사이트 주소는 www.eclipse.org/downloads. Eclipse/Photran 외에도 인텔 Fortran 지원하는 무료 IDE가 있다고 한다.


다운로드한 파일 이름은...
eclipse-parallel-oxygen-3a-linux-gtk-x86_64.tar.gz

이것을 평소대로 /opt에 풀어준다.
sudo tar -xvzf '다운받은 파일이름' -C /opt

실행은 쉘(터미널)에서 /opt/eclipse/eclipse



Eclipse/Photran에서 Intel Fortran


터미널을 연 다음, Intel Fortran의 스크립트를 실행시킨다.
source /opt/intel/compilers_and_libraries_2018/linux/bin/compilervars.sh intel64

바로 이 터미널에서 Eclipse를 시작한다.
/opt/eclipse/eclipse

쉘에 다음과 같은 에러메세지가 쏟아진다면..
(Eclipse:3263): GLib-CRITICAL **: 05:27:35.939: g_base64_encode_step: assertion 'in != NULL' failed

SWT_GTK3 변수를 0으로 두고 실행한다.
env SWT_GTK3=0 /opt/eclipse/eclipse



Eclipse이 시작되면 메뉴 File -> New -> Other로 다음 창을 연다.



Next 을 눌러서 아래 창을 연다. Project name을 적은 다음 Project type에서 Others 폴더를 열면 Executable (Intel(R) Fortran)이 보일 것이다. 이를 고른 다음 Finish 버튼을 누른다.



마우스를 Project Explorer탭 아래의 프로젝트명 위에 두고 마우스 오른쪽 버튼을 눌러 New -> Fortran Source File을 추가한다. 여기서 파일이름이 중요한데, 확장자가 f나 for면 포트란 77로 인식하고 f90이면 포트란 90으로 인식되는 것 같다.



디버거 설정
/opt/intel/debugger_2018/bin 에 스크립트 파일이 2개 있다. 확장자 csh는 C 쉘용 sh는 bash 쉘용이다. 컴파일러 변수 스크립트(compilervars.sh)를 실행한 다음 아래 디버거 스크립트(debuggervars.sh)도 실행해준다.

source /opt/intel/debugger_2018/bin/debuggervars.sh -arch intel64 -platform linux

자세한 설명은 아래를 참조하라.
Debugging on Intel Architecture with the GNU Project Debugger.
https://software.intel.com/en-us/iss-2016-get-started-with-debugging-linux



쉘 스크립트
매번 다시 입력할 수 없는 문제라...
pluma photran.sh

-----------------------------------
#!/bin/bash
source /opt/intel/compilers_and_libraries_2018/linux/bin/compilervars.sh intel64
source /opt/intel/debugger_2018/bin/debuggervars.sh -arch intel64 -platform linux
/opt/eclipse/eclipse
-----------------------------------

chmod a+x photran.sh

다음부터는 터미널을 열고...
./photran.sh



파이썬 (Python) 설정

여기까지 왔다면 아마 파이썬은 설치되었을거다.
그래도 확인하자. 터미널을 열고...
python --version

현재 버전은 Python 2.7.15rc1
설치되어 있지 않다면 알아서 설치하자.

Eclipse을 시작하여 메뉴를 통해 다음 창을 열어 pydev를 가져와 설치한다.
Help --> Eclipse Martket



Eclipse를 닫았다가 다시 시작하여 새 프로젝트창을 열면 PyDev 항목이 생겼을 것이다.




Anaconda 파이썬 (Python) 설정

다운로드 사이트 주소다. 버전은 3.6을 받자.
https://www.anaconda.com/download/

주소 달라고 하는데, 안줘도 다운로드는 실행된다.
받은 파일 이름은 다음과 같다.
Anaconda3-5.1.0-Linux-x86_64.sh

chmod a+x '받은파일이름.sh'
sudo ./'받은파일이름.sh'

라이센스 조건에 yes하고 설치폴더는...
/opt/anaconda3 로 바꿔준다.

경로를 PATH에 추가하겠냐고 하면 yes.

새로운 터미널을 열고...
python --version
python

파이썬 3.6 대신 2.7을 사용하고 싶을 경우.
일단 파이썬에서 나간다.
>>>exit()



Conda로 아나콘다 관리

bash shell prompt에서...
$conda create -n py27 python=2.7 flask sqlalchemy
여기서 flask sqlalchemy는 포함시킬 패키지 이름

혹은...
conda create -n py27 python=2.7 anaconda


새 환경을 활성화 시킨다.
source activate py27

이제 python을 실행하면 2.7.1시작된다.
python

비활성화 시키려면...
source deactivate

지우려면..
conda env list
conda remove --name py27 --all
conda remove -n py27 --all

conda 업데이트는...
conda update -n base conda
자세한 설명은 이곳 (여기를 클릭) 참조.



Jupyter Notebook

파이썬이 아니라 터미널에서 실행한다.
jupyter notebook

jupyter notebook에서 code complete 기능을 원할 경우 맨 처음에 '%config IPCompleter.greedy=True'를 넣어준다. 이후 코딩 중에 tab키를 누르면 뜰 것이다.



파이썬으로 데이터 주무르기

한국교보문고로 주문해서 FedEx 해외 배송을 통해 받은 '파이썬으로 데이타 주무르기'라는 책을 따라해봤다. 저자는 윈도우에서 돌려본 거고 난 우분투 18.04에서 돌린거라 하다보니 소소하게 걸리는 것이 있어 정리해 둔다. 디렉토리 이름은 python이라고 하자. 둘다 이상없이 읽어들인다.

pd.read_csv('~/Documents/python/x.csv')
pd.read_csv('/home/steve/Documents/python/x.csv')

pandas의 read_excel()은 users' home directories 표시인 ~ (tilde·갈매기)를 인식하지 못한다. read_csv()에서 tilde 키를 인식하길래, read_excel()에서 되는 줄 알고 한참을 삽질했었다. 첫번째는 FileNotFoundError 에러를 발생한다.

pd.read_excel('~/Documents/python/x.xls')
pd.read_excel('/home/steve/Documents/python/x.xls')

설치된 pandas 버전은 0.22.0
3일전에 0.23.0이 나왔다는데 모르겠다.



MatLAB trial version

MatLAB 구입에 앞서 트라이얼 버전으로 테스트를 해보기로 했다. 일단 www.mathworks.com에서 내려 받는다.

일단 matlab를 설치할 디렉토리 생성.
sudo mkdir -p /usr/local/MATLAB/R2018a/

이제 Downloads에 matlab이라는 디렉토리를 만들고 여기에 방금 다운받은 파일을 풀어준다.
cd Downloads
mkdir matlab
unzip -q matlab_R2018a_glnxa64.zip -d matlab

matlab디렉토리에 가서 설치 시작.
cd matlab
sudo ./install

그럼 아래와 같은 창이 뜰 것이다.




trial version을 다운 받을 때 넣어던 이메일 주소와 그때 만든 비밀번호를 넣는다. 계정도 만든 것 같은데 왜 계정 이름이 아닌 메일 주소를 묻는거지?





설치 준비 과정에서 만들어 둔 디렉토리.





심볼릭 링크는 생성하고...
Help Improve...는 체크 해제하고...







설치가 끝나기 직전 위와 같은 창이 뜬다. 추가 설정이 필요하다는 말인데, 이미 gcc설치 해놨는데 뭐가 문제일까? intel c/c++도 설치되어 있어서 헷갈린건가? 여튼... 터미널창에서 ...
mex -setup C
mex -setup C++



설치가 끝나고 matlab를 실행하면 다음과 같은 에러 메세지가 뜬다.

terminate called after throwing an instance of 'std::runtime_error'
what(): Unable to launch the MATLABWindow application


해결책은...
cd /usr/local/MATLAB/R2018a
cd cefclient/sys/os/glnxa64
sudo mkdir exclude
sudo mv libglib-2.0.so* exclude/

이제 matlab를 실행하면 다음 창이 뜬다.




ID, 암호 넣고 Sign In을 클릭하면... 짠!
날짜는 이틀 전, 계정 만들고 다운받은 날이네.




1. How to install MATLAB on Ubuntu 18.04 Bionic Beaver Linux

2. Solving PDEs in MatLAB



sudo apt-get install python-setuptools
sudo apt-get install python-gtk2-dev



MatLAB에 Addon을 설치할 때

Symbolic Math Toolbox를 추가하는 과정에서 다음 창을 만났다면 matlab을 로딩한 터미날을 닫아주면 된다.



하지만 그냥 닫으면 안되고, 시스템 모니터에서 bash 창 프로세스를 죽여주면 되겠다




설치 과정에서 아래 창을 만날 경우



쥔장을 바꿔주면 된다.
먼저 MATLAB에서 matlabroot 명령을 통해 루트디렉토리를 확인하자. (현재는 /usr/local/MATLAB/R2018a).

그런 다음, bash창에서 matlab을 시작하기 전에
sudo chown -R $LOGNAME: /usr/local/MATLAB/R2018a
를 해주고 나서 matlab를 시동하면 되겠다.