内容へ移動
CERN Program Library
-
KobaWiki@RCNP
トレース:
文書の表示
管理
最近の変更
サイトマップ
ログイン
検索
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
===== CERN Program Library ===== ==== CentOS 8.2.2004 ==== * Debugging the DESY cernlib * PAW のメモリの大きさを変えた時は、すべてをコンパイルする必要はなく、以下のコマンドで再コンパイル可能。何度もコンパイルし直していると、log ファイルのファイル名が長くなりすぎてエラーになるので、ログファイルも消しておく。 $ emacs -nw 2005/src/pawlib/paw/paw/pawbig.inc $ touch 2005/src/pawlib/paw/programs/0pamain.F $ rm -rf 2005/build/log/* $ ./Install_cernlib_paw * コンパイルオプション (例えば # define DefaultFCOptions) を 2005/src/config/linux-lp64.cf 内に追加したら、2005 ディレクトリ内の bin, build, lib ディレクトリをすべて消してすべてコンパイルし直しする。 * NWPAW を 175000000 以上にして、二次元ヒストグラムを表示すると、以下のように SIGFPE で落ちるときがある。これは再現性がある。 PAW> hi/pl 6 Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation. Backtrace for this error: #0 0x7f7b6339216a #1 0x7f7b633912d3 ... #32 0x7f7b627f96a2 #33 0x429edd #34 0xffffffffffffffff Floating point exception (core dumped) * gdb ~/cern/sandbox/cernlib_2005_minipacklib_paw/2005/bin/pawX11 として、 (dbg) run とすると、ighcxy_ () で落ちていることがわかる。コンパイル時に -g オプションをつけなくてもSIGであれば dbg がとらえてくれる。 ==== Ubuntu 18.04 LTS ==== * Ubuntu 18.04 に gfortran でコンパイルした cernlib をインストールした。ただ、うまく動いてないかも? - はじめに一応 Ubuntu のバージョンをチェックしておく。 $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS" - imake コマンドを使えるようにし、gmake から make へのリンクを貼る $ sudo apt-get install xutils-dev $ sudo ln -s /usr/bin/make /usr/bin/gmake - ディレクトリを作成 $ mkdir -p ~/cern/cernlib-2005-paw-128mb $ cd ~/cern/cernlib-2005-paw-128mb - 以下のソースを [[https://www-zeuthen.desy.de/linear_collider/cernlib/new/cernlib_2005.html|CERNLIB 2005 and 2006 (64 bit) compatible with the gcc4/gfortran compiler suite]]からダウンロード。 * [[https://www-zeuthen.desy.de/linear_collider/cernlib/new/cernlib-2005-all-new.tgz|cernlib-2005-all-new.tgz]] * [[https://www-zeuthen.desy.de/linear_collider/cernlib/new/cernlib.2005.corr.2014.04.17.tgz|cernlib.2005.corr.2014.04.17.tgz]] * [[https://www-zeuthen.desy.de/linear_collider/cernlib/new/cernlib.2005.install.2014.04.17.tgz|cernlib.2005.install.2014.04.17.tgz]] $ wget https://www-zeuthen.desy.de/linear_collider/cernlib/new/cernlib-2005-all-new.tgz $ wget https://www-zeuthen.desy.de/linear_collider/cernlib/new/cernlib.2005.corr.2014.04.17.tgz $ wget https://www-zeuthen.desy.de/linear_collider/cernlib/new/cernlib.2005.install.2014.04.17.tgz - tar ファイルの解凍と上書き $ tar zxvf cernlib-2005-all-new.tgz $ mv cernlib.2005.corr.2014.04.17.tgz cernlib.2005.corr.tgz $ tar zxvf cernlib.2005.install.2014.04.17.tgz - 中身があるか一応チェック $ ls Install_cernlib* Install_old_patchy4* Install_cernlib_and_lapack* README_cernlib Install_cernlib_bin* cernlib-2005-all-new.tgz Install_cernlib_fixes* cernlib.2005.corr.tgz Install_cernlib_include* cernlib.2005.install.2014.04.17.tgz Install_cernlib_lib* cernlib.fixed* Install_cernlib_patchy* cernlib_2005.tgz Install_cernlib_src* cernlib_env* Install_cernlib_test* lapack.tar.gz Install_lapack* patchy4.tar.gz $ - src の展開 $ export CERN=$PWD $ ./Install_cernlib_src - PAW のメモリを増加 $ emacs ~/cern/cernlib-2005-paw-128mb/2005/src/pawlib/paw/paw/pawbig.inc *** Edit Line 20 of the file as below *** PARAMETER (NWPAW=2000000) | | | V V V * NWPAW was enlarged from 2000000 to 32000000 by Nobu on Jul. 4, 2018 * PARAMETER (NWPAW=2000000) PARAMETER (NWPAW=32000000) - sdf $ emacs ~/cern/cernlib-2005-paw-128mb/2005/src/config/linux-lp64.cf *** Edit Line 142 and 157 as below *** ... # define DefaultCCOptions -fPIC | | | V V V # define DefaultCCOptions /* -fPIC c/o by Nobu on Aug. 24, 2019*/ ... # define DefaultFCOptions -fno-automatic -fno-second-underscore -fPIC | | | V V V # define DefaultFCOptions -fno-automatic -fno-second-underscore /* -fPIC c/o by Nobu on Aug. 24, 2019*/ ... $ emacs ~/cern/cernlib-2005-paw-128mb/2005/src/config/Imake.cf *** Edit Line 390 as below *** ... #if __GNUC__ == 4 | | | V V V #if __GNUC__ == 7 - Install_cernlib を書き換え $ emacs ~/cern/cernlib-2005-paw-128mb/Install_cernlib *** Edit Line 13-15, and 33 as below *** ... echo "installing cernlib sources" ./Install_cernlib_src | | | V V V #echo "installing cernlib sources" # #./Install_cernlib_src ... [ "$GCCVSN" = "4" ]&&FC=gfortran | | | V V V [ "$GCCVSN" = "7" ]&&FC=gfortran - インストールの実行 $ ./Install_cernlib ==== CentOS 7 ==== * CentOS 7 に g77 と g77 でコンパイルされた cernlib をインストールした。 $ wget http://ftp.riken.jp/Linux/scientific/6.8/x86_64/os/Packages/compat-libf2c-34-3.4.6-19.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/scientific/6.8/x86_64/os/Packages/compat-gcc-34-3.4.6-19.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/scientific/6.8/x86_64/os/Packages/compat-gcc-34-g77-3.4.6-19.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/Packages/c/cernlib-g77-2006-34.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/Packages/c/cernlib-g77-devel-2006-34.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/Packages/c/cernlib-g77-static-2006-34.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/Packages/c/cernlib-g77-utils-2006-34.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/Packages/p/paw-2006-34.el6.x86_64.rpm $ su # yum remove compat-libf2c-34 # yum localinstall compat-libf2c-34-3.4.6-19.el6.x86_64.rpm # yum localinstall compat-gcc-34-3.4.6-19.el6.x86_64.rpm # yum localinstall compat-gcc-34-g77-3.4.6-19.el6.x86_64.rpm # yum localinstall cernlib-g77-2006-34.el6.x86_64.rpm # yum localinstall cernlib-g77-devel-2006-34.el6.x86_64.rpm # yum localinstall cernlib-g77-static-2006-34.el6.x86_64.rpm # yum localinstall cernlib-g77-utils-2006-34.el6.x86_64.rpm # yum localinstall paw-2006-34.el6.x86_64.rpm 順番をまちがえるとだめかも? インストール後、http://lnr.irb.hr/soya/physics/asdoc/chbook-example.c をダウンロードしてきてコンパイル。http://hep.fuw.edu.pl/misc/CERNLIB_from_C.html を参考に。C から cernlib を実行できた。 $ wget http://lnr.irb.hr/soya/physics/asdoc/chbook-example.c $ gcc -c -Df2cFortran -I/usr/include/cernlib/2006/cfortran chbook-example.c $ g77 chbook-example.o `cernlib-g77 packlib,mathlib` -o chbook-example $ ./chbook-example 1 some random distribution PART 1 OF ** HBOOK ID = 1 DATE 24/12/2016 NO = 1 CHANNELS 100 0 1 10 0 1 2 3 4 5 6 7 8 9 0 1 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 ... ... LOW-EDGE 1. 3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334 0 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990 0 6666666666666666666666667777777777777777777777777888888888888888888888888899999999999999999999999990 0 0011222334445566677888990001122233444556667788899000112223344455666778889900011222334445566677888990 0 4826048260482604826048260482604826048260482604826048260482604826048260482604826048260482604826048260 * ENTRIES = 100000 * ALL CHANNELS = 0.0000E+00 * UNDERFLOW = 0.0000E+00 * OVERFLOW = 0.1000E+06 * BIN WID = 0.4000E-03 * MEAN VALUE = 0.0000E+00 * R . M . S = 0.0000E+00 $ ==== Shared Library ==== * CERN program library はそもそも shared library (lib*.so) をサポートしないらしい(参考: https://userweb.jlab.org/~marki/cernlib_on_debian/cernlib/faq.html#33)? [[http://cernlib.web.cern.ch/cernlib/version.html|公式ページ]]でも、武内さんのバイナリでも (http://ribf.riken.jp/~takesato/research/as/ap6.html)、static library (lib*.a) しかない。
文書の表示
以前のリビジョン
メディアマネージャー
文書の先頭へ