LoginSignup
4
2

More than 3 years have passed since last update.

TravisCIでIntel MKLを利用したFortranプログラムをCIする

Last updated at Posted at 2019-10-11

はじめに

 Intel MKL1を利用したFortranプログラムをTravisCI2で継続的インテグレーション(CI : continuous integration)する方法を述べる.本テストで用いたリポジトリはtoya42/test_travisciである.
 

設定ファイル(.travis.yml)

 .travis.ymlをそのまま示す.TravisCIを使い慣れている方ならこれで十分かもしれないが,注意が必要な箇所についてはあとで述べる.

.travis.yml
os:
   - linux

matrix:
   include: 
      - dist: xenial
      - dist: bionic
sudo: required
addons:
   apt:
      packages:
      - gfortran
install:
   - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
   - mkdir ${DEPS_DIR} 
   - cd ${DEPS_DIR}
   - travis_retry wget https://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3.tar.gz  
   - tar -xzvf cmake-3.15.3.tar.gz >log1
   - mv cmake-3.15.3 cmake_install
   - cd cmake_install
   - ./configure >log2
   - make >log3
   - sudo make install >log4
   - PATH=${DEPS_DIR}/cmake_install:${DEPS_DIR}/cmake_install/bin:$PATH
   - cd ${TRAVIS_BUILD_DIR}

before_script:
   - wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
   - sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
   - sudo wget https://apt.repos.intel.com/setup/intelproducts.list -O /etc/apt/sources.list.d/intelproducts.list 
   - sudo apt-get update
   - sudo apt-get install intel-mkl-2019.4-070 --allow-unauthenticated
   - source /opt/intel/mkl/bin/mklvars.sh intel64 lp64

script:
    - bash compile.sh
    - bash execute.sh
compile.sh
#!/bin/bash
mkdir build
cd build
cmake -D CMAKE_Fortran_COMPILER=gfortran -D CMAKE_BUILD_TYPE=debug ../
make
execute.sh
#!/bin/sh
ulimit -s unlimited
mkdir run
cd run
mkdir output
ln -s ../build/2dvorticity_psm.exe ./
./2dvorticity_psm.exe

利用の際に引っかかった事,注意する事

OSのversion

使用言語languageをFortranにするとdistで定義されたOSおよびバージョンにならない場合がある.例えば以下のような設定ファイルを書いても,ubuntu14.04で実行される.(bionicはubuntu18.04を意味する)

dist: bionic 
language: Fortran
#~~~~~~~~~~~~~~~~~~#

よって,languageは記述せず,デフォルトのRubyのままで良い.またsudoを許可することも明記する.さらに,ubuntuの現行LTS2種をCIに用いたいので,matrixを使って次のように書く

os:
   - linux
matrix:
   include: 
      - dist: xenial
      - dist: bionic
sudo: required

TravisCIでFortran

TravisCIでFortranをCIする
より,apt-getでコンパイラをインストールできるなら利用できる.という訳で,gfortranが使える

addons:
   apt:
      packages:
      - gfortran

CMake

デフォルトのCMakeは古い場合があるので,次のページに従って新しいバージョンを用いる
Configure Travis CI with newest CMake
画面出力が多すぎてうるさかったのでlogファイルに書き込ませている.

install:
   - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
   - mkdir ${DEPS_DIR} 
   - cd ${DEPS_DIR}
   - travis_retry wget https://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3.tar.gz  
   - tar -xzvf cmake-3.15.3.tar.gz >log1
   - mv cmake-3.15.3 cmake_install
   - cd cmake_install
   - ./configure >log2
   - make >log3
   - sudo make install >log4
   - PATH=${DEPS_DIR}/cmake_install:${DEPS_DIR}/cmake_install/bin:$PATH
   - cd ${TRAVIS_BUILD_DIR}

Intel MKL

Intel MKLをAPTでインストールする
より,コマンドライン(apt)でIntel MKLをインストールできる.注意する点は,下から二行目のオプション--allow-unauthenticatedをつけること.

before_script:
   - wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
   - sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
   - sudo wget https://apt.repos.intel.com/setup/intelproducts.list -O /etc/apt/sources.list.d/intelproducts.list 
   - sudo apt-get update
   - sudo apt-get install intel-mkl-2019.4-070 --allow-unauthenticated
   - source /opt/intel/mkl/bin/mklvars.sh intel64 lp64

終わりに

 初めてGithubにリポジトリを作り,初めてTravisCIでCIをした.色々拙い点があると思う.間違っていることなどあれば,遠慮なくご指摘いただきたい


  1. Intel® Math Kernel Library, webサイト: https://software.intel.com/en-us/mkl , EULA: https://software.intel.com/en-us/articles/end-user-license-agreement 

  2. Travis CI - Test and Deploy Your Code with Confidence: https://travis-ci.org/  

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2