FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

私のクラシックギター演奏をどうぞ!

●タレガ作曲「アルハンブラの思い出」 (録音日:2003-09-01)
 alhambra.mp3
  使用楽器:アントニオ・マリン・モンテロ(98年)松、ハカランダ
  使用弦:プロアルテ ノーマル
  新古品のアントニオ・マリン・モンテロを入手後、すぐに録音してみました。
  弦を張り替えた直後に録音したため、何回か録音しているうちに弦が緩んで、ピッチが低くなっております..

●カタロニア民謡「聖母の御子」リョベート編 (録音日:2004-01-03)
 seibo.mp3
  使用楽器:アントニオ・マリン・モンテロ(98年)松、ハカランダ
  使用弦:プロアルテ ノーマル

●アルベニス作曲「マジョルカ」 (録音日:2004-01-03)
 mallorca.mp3
  使用楽器:アントニオ・マリン・モンテロ(98年)松、ハカランダ
  使用弦:プロアルテ ノーマル

●「禁じられた遊び」
 kinjirar.mp3
  使用楽器:広瀬達彦 松、ローズウッド
  いまいち調弦が合ってない(汗)

スポンサーサイト

自作フリーソフト

自作フリーソフト(ソースコード付)へのリンクを張っておきます。

bgrep
バイナリファイル中からパターンを検索する
https://www.vector.co.jp/soft/unix/util/se488747.html

PythonとNumPyを、Intelコンパイラでビルド出来たっぽい

PythonとNumPyを、Intelコンパイラ(13.1.1)でビルドしてみました。CentOS 6.2使用。

● Python-2.7.5

端末で以下を実行してビルドする。

cd $HOME/Downloads
wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2
cd $HOME/src
tar xf $HOME/Downloads/Python-2.7.5.tar.bz2
cd Python-2.7.5
mkdir build
cd build
CC=icc CXX=icpc ../configure --prefix=/opt/Python-2.7.5 --enable-shared --without-gcc
make

コンパイルエラーが出た。

/home/usrname/src/Python-2.7.5/Modules/_ctypes/libffi/src/x86/ffi64.c(56): エラー: 識別子 "__m128" は定義されていません。
UINT128 i128;
^

コンパイルは /home/usrname/src/Python-2.7.5/Modules/_ctypes/libffi/src/x86/ffi64.c で異常終了しました (コード 2)。

以下のファイルをエディタで開く。

$HOME/src/Python-2.7.5/Modules/_ctypes/libffi/src/x86/ffi64.c

エディタで「__INTEL_COMPILER」を検索して、include文を追加。

#if defined(__INTEL_COMPILER)
#define UINT128 __m128
#else

↓↓↓↓↓↓↓ 変更 ↓↓↓↓↓↓↓

#if defined(__INTEL_COMPILER)
#include <xmmintrin.h>
#define UINT128 __m128
#else

保存する。

再びmakeし、成功したらmake install

make
sudo make install
ls /opt

$HOME/.bashrcに以下を追加。

export PATH=/opt/Python-2.7.5/bin${PATH:+:$PATH}
export LD_LIBRARY_PATH=/opt/Python-2.7.5/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

端末を再起動するなりしてPATHを通してから、動作確認。

cd
python2.7

IntelコンパイラでビルドされたPythonが立ち上がれば、たぶんOK。

Python 2.7.5 (default, May ** 2013, **:**:**)
[GCC Intel(R) C++ gcc 4.4 mode] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Pythonを終了させる。

● NumPy-1.7.0

端末で以下を実行してビルドする。

cd $HOME/Downloads
wget http://sourceforge.net/projects/numpy/files/NumPy/1.7.0/numpy-1.7.0.tar.gz
cd $HOME/src
tar xf $HOME/Downloads/numpy-1.7.0.tar.gz
cd numpy-1.7.0
CC=icc CXX=icpc python2.7 setup.py build

ビルドに成功したらインストール。

sudo -s

# 以下の3行はroot用に環境変数の設定
source /opt/intel/bin/compilervars.sh intel64 # Intelコンパイラを使えるように
export PATH=/opt/Python-2.7.5/bin${PATH:+:$PATH}
export LD_LIBRARY_PATH=/opt/Python-2.7.5/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

CC=icc CXX=icpc python2.7 setup.py install
ls /opt/Python-2.7.5/lib/python2.7/site-packages

numpyがインストールされたことを確認し、rootから抜ける。

Pythonを起動して、NumPyを使ってみる。

cd
python2.7
import numpy
numpy.version.version

以下のようにNumPyのバージョンが表示された。

Python 2.7.5 (default, May ** 2013, **:**:**)
[GCC Intel(R) C++ gcc 4.4 mode] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.version.version
'1.7.0'
>>>

Pythonを終了させる。

[OpenFOAM] Windowsで使う時、Windows版と仮想マシン上のLinux、どっちが良い?

11月のOpenFOAM勉強会@関東で、(スタンドアロンの)WindowsでOpenFOAMを使う時、(1)Windows版を用いるのが良いか、(2)ホスト型仮想マシン上のLinuxで動かすのが良いか、という話題が出ました。パフォーマンスは比較していないので、どちらが高いかわかりません。

物理マシン上のLinuxで動かすのに比べると、両者共にデメリットがあります。

●Windows版のデメリット
・git pullで最新にアップデートできない
・PyFoamが(まだ)動かない
・MSYS上でシェルスクリプトは使えるが、MSYSは使い勝手が悪い(と私は思った)

●Linux@仮想マシンのデメリット
・GPUが使えない
・仮想マシン製品によっては、使えるCPU数に上限がある(例:VMWare Playerは4CPUまで)

どちらを使うかは、ケースバイケースですね。

Helyx-OSを動かしてみた

OpenFOAM勉強会@関東に刺激されて、ちょっとだけ Helyx-OSを動かしてみた。

Helyx-OSのインストール法:http://sourceforge.net/p/helyx-os/wiki/DownloadAndInstallation/

私が試した OSは 2つ。
・Ubuntu 10.04(DEXCS2011-OF20x64)
・CentOS 6.2(64bit)

インストール先は任意だが、今回は「/opt/OpenFOAM」の下にインストールする。

● Helyx-OSをダウンロード。
入手先:http://sourceforge.net/projects/helyx-os/

cd $HOME/Downloads
wget http://sourceforge.net/projects/helyx-os/files/20120721-engys-HelyxOS-100-linux-x64-JRE.tar.bz2
wget http://sourceforge.net/projects/helyx-os/files/20120721-engys-HelyxOS-100-src.tar.bz2


● プリコンパイル版を動かしてみる。

パッケージを展開。

cd /opt/OpenFOAM
tar xf $HOME/Downloads/20120721-engys-HelyxOS-100-linux-x64-JRE.tar.bz2


Helyx-OSを実行。

cd Engys/HelyxOS/v100
LANG=C ./helyxOS.sh


動いた。

もし以下のように「libmpi.so.0」がない旨のメッセージが出たら、

java.lang.UnsatisfiedLinkError: /opt/OpenFOAM/Engys/HelyxOS/v100/ext/libvtkHybridJava.so.5.10.0: libmpi.so.0: cannot open shared object file: No such file or directory
  at java.lang.ClassLoader$NativeLibrary.load(Native Method)
  at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807)
  at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1732)
  at java.lang.Runtime.loadLibrary0(Runtime.java:823)
  at java.lang.System.loadLibrary(System.java:1028)
  at eu.engys.helyx.vtk.VTKUtil.loadLibrary(VTKUtil.java:87)
  at eu.engys.helyx.vtk.VTKUtil.LoadAllNativeLibraries(VTKUtil.java:64)
  at eu.engys.helyx.gui.Launcher.main(Launcher.java:44)


以下のようにシンボリックリンクを作っておいて、再び「helyxOS.sh」を実行する。

ln -s $MPI_ARCH_PATH/lib/libmpi.so $MPI_ARCH_PATH/lib/libmpi.so.0


● ソースからビルドしてみる。

① Javaをインストール。

Helyx-OS内の Javaのバージョンを確認。

cd /opt/OpenFOAM/Engys/HelyxOS/v100
jre_linux_x64_VTK/bin/java -version


以下のように表示された。

java version "1.6.0_32"
Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.7-b02, mixed mode)


なるべくバージョンが近い Oracle JDKをインストールする。

Oracle JDKを入手。
入手先:http://www.oracle.com/technetwork/java/javase/downloads/jdk6-downloads-1637591.html
以下のファイルをブラウザでダウンロードした。保存先は「$HOME/Downloads」。

jdk-6u34-linux-x64.bin


今回はホームディレクトリの下でインストーラを起動。

chmod u+x $HOME/Downloads/jdk-6u34-linux-x64.bin
cd
$HOME/Downloads/jdk-6u34-linux-x64.bin


「$HOME/jdk1.6.0_34」の下にインストールされた。

② antがなければインストール。

# Ubuntu
sudo apt-get install ant1.8

# CentOS
sudo yum install ant


antのバージョン確認

ant -version


③ Helyx-OSのソースパッケージを、プリコンパイルパッケージと同じ場所で展開。

cd /opt/OpenFOAM
tar xf $HOME/Downloads/20120721-engys-HelyxOS-100-src.tar.bz2


④ ビルド。
 環境変数 JAVA_HOMEに、自分がインストールした Oracle JDKの場所を指定して antを実行する。

cd Engys/HelyxOS/v100
JAVA_HOME=$HOME/jdk1.6.0_34 ant -buildfile build_src.xml


以下のエラーが出た。

Buildfile: /opt/OpenFOAM/Engys/HelyxOS/v100/build_src.xml

init:
  [mkdir] Created dir: /opt/OpenFOAM/Engys/HelyxOS/v100/build

compile:
  [javac] Compiling 212 source files to /opt/OpenFOAM/Engys/HelyxOS/v100/build
  [javac] /opt/OpenFOAM/Engys/HelyxOS/v100/src/eu/engys/helyx/gui/AboutWindow.java:53: この文字は、エンコーディング UTF8 にマップできません。
  [javac]   //private static final String DISCLAIMER = "HELYX is not approved or endorsed by SGI Corp., owner of the OPENFOAM? trademark";
  [javac]                                                            ^
  [javac] /opt/OpenFOAM/Engys/HelyxOS/v100/src/eu/engys/helyx/gui/AboutWindow.java:54: この文字は、エンコーディング UTF8 にマップできません。
  [javac]   private static final String COPYRIGHT = "Copyright ? Engys Ltd 2012. All rights reserved.";
  [javac]                             ^
  [javac] エラー 2 個

BUILD FAILED
/opt/OpenFOAM/Engys/HelyxOS/v100/build_src.xml:34: Compile failed; see the compiler error output for details.

Total time: 1 second


nkfを使って、ソースコードを UTF8に変換する。まず、nkfがなければインストール。

# Ubuntu
sudo apt-get install nkf

# CentOS
sudo yum install nkf


現在のエンコードを確かめる。

nkf -g /opt/OpenFOAM/Engys/HelyxOS/v100/src/eu/engys/helyx/gui/AboutWindow.java


「Shift_JIS」と表示された。

UTF8に変換。

nkf -w --overwrite /opt/OpenFOAM/Engys/HelyxOS/v100/src/eu/engys/helyx/gui/AboutWindow.java
nkf -g /opt/OpenFOAM/Engys/HelyxOS/v100/src/eu/engys/helyx/gui/AboutWindow.java


「UTF-8」と表示された。

再びビルド。

JAVA_HOME=$HOME/jdk1.6.0_34 ant -buildfile build_src.xml


成功。

⑤ Helyx-OSを実行してみる。
「helyxOS.sh」を起動しても良いと思うが、自分で javaコマンドを使って動かしてみた。
 Helyx-OS内の Javaを使う。

jre_linux_x64_VTK/bin/java -jar lib/HelyxOS.jar


GUIは起動するが、右上に「Error loading VTK librares」と表示されて、レンダリングが失敗した。
端末には以下のエラーメッセージが表示されていた。

java.lang.UnsatisfiedLinkError: no vtkCommonJava in java.library.path
  at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
  at java.lang.Runtime.loadLibrary0(Runtime.java:823)
  at java.lang.System.loadLibrary(System.java:1028)
  at eu.engys.helyx.vtk.VTKUtil.loadLibrary(VTKUtil.java:87)
  at eu.engys.helyx.vtk.VTKUtil.LoadAllNativeLibraries(VTKUtil.java:60)
  at eu.engys.helyx.gui.Launcher.main(Launcher.java:44)


必要な LD_LIBRARY_PATHが通っていないのが原因。

これならどうだ。

LD_LIBRARY_PATH=/opt/OpenFOAM/Engys/HelyxOS/v100/ext:/opt/OpenFOAM/Engys/HelyxOS/v100/jre_linux_x64_VTK/lib/amd64/xawt:${LD_LIBRARY_PATH} jre_linux_x64_VTK/bin/java -jar lib/HelyxOS.jar


動いた。
プロフィール

カネダ

Author:カネダ
おじさんプログラマです。業務で約19年、主に宇宙輸送機まわりの極超音速流れの解析&プログラミングを行っていました。
J.S.バッハ等、古楽をピリオド楽器による演奏で聴くのが好き。
リュート演奏にあこがれつつ、クラシックギターを弾きます。

保有資格
・中小企業診断士
・Oracle Master Platinum 8(現制度のGold相当)

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。