月別アーカイブ: 2015年12月

Parallellaでクラスタリング

いわゆるBeowulf型のクラスタをParallellaで構築してみます。と言っても、最新のインストールイメージにデフォルトでOpenMPIがインストールされていますので、これを利用することで簡単にクラスタリングを試すことができます。

ここでは、ハブを介して2台のParallella DesktopをGbEで接続し、DHCPでMACアドレスに対して静的にIPアドレスを割り当てるものとします。片方のParallellaのホスト名をparallella01, もう一台をparallella02とし、parallella01をマスター演算ノードとします。parallella01, 02のホスト名・IPアドレスの紐付けは/etc/hostsあるいはLANのDNS等で引けるようにしておきます。

  1. parallella01でssh-keygenで公開鍵・秘密鍵のペアを生成します
  2. 生成した公開鍵をparallella02にコピーし、~/.ssh/authorized_keysに追加します
  3. parallella01で以下のコマンドを実行します
$ cd parallella-examples/para-para
$ mpirun -np 4 -host parallella01,parallella02 ./hello-mpi.elf
Hello World from MPI Process 0 on machine parallella01
Hello World from MPI Process 1 on machine parallella01
Hello World from MPI Process 2 on machine parallella02
Hello World from MPI Process 3 on machine parallella02

あっさりクラスタリングできました。-npオプションの引数は2ノード2コア=4となります。4より大きい値を指定するとNUMA云々でエラーになります。なお、para-paraアプリと同じようなアプリが~/test/mpiにもあります。こちらはアプリを自分でmakeする必要がありますが、基本的な実行方法は同じです。

今回は各ノードに個別に同じバイナリを置きましたが、マスター演算ノード(ここではparallella01)のファイルシステムをNFSでスレーブ演算ノード(ここではparallella02)にマウントさせる、という方法も可です。というか、そちらの方がよりBeowulfっぽいかも。ただ、Parallella標準のlinux kernelはNFSサーバに対応してないっぽいです。

Parallellaのストレージ拡張

ParallellaのイメージをmicroSDに焼くと、100MBのboot領域 (/dev/sdb1)と3.5GBのroot領域 (/dev/sdb2)が作成されます (デバイスファイルのパスは環境に依存しますのでご注意下さい)。gunzipしたイメージファイルがおよそ4GBですので、そんなもんでしょう。しかし16GBのmicroSDにイメージを焼いた場合、残りの12GBはまったく使われない領域として残されます。

この領域を活用する一つの方法は、残りの領域を/dev/sdb3としてパーティションを切ってフォーマットして、マウントしてしまうことです。もう一つの方法は、GParted等のツールでroot領域を拡張することです。今回は後者を行ってみます。

続きを読む

THE ZYNQ BOOK

Amazonで "zynq" をキーワードで検索すると2冊の洋書『THE ZYNQ BOOK: Embedded Processing with the Arm Cortex-A9 on the Xilinx Zynq-7000 All Programmable Soc』と『THE ZYNQ BOOK: Tutorials for Zybo and Zedboard』が引っ掛かります。

私も読み始めたばかりですが、実は2冊ともPDFファイルがzynqbook.comで配布されています。Xilinxのブログにも紹介記事がありました。氏名、メアド等を登録する必要がありますが、これだけの内容の書籍だ無料でしたら全然アリなのではないでしょうか。後日レビューなど書いてみたいと思います。

Parallella Porcupine attached

Parallella 開発環境

intel Edisonに浮気をしつつParallellaでも遊ぶ準備を進めています。

まず、Parallellaの拡張ボードであるPorcupineRS componentsから購入しました。リンク先の写真にはありませんが、下の写真の現在のrevisionではRaspberry Piのカメラを接続するためのコネクタが追加されています。

Parallella Porcupine

Parallella Porcupine

PorcupineにはJTAG用のポートが用意されていますので、秋月でDigilentのJTAG-HS3ケーブルを購入しました。ただ、このケーブルをPorcupineの裏面に直接刺すとスタックできなくなりますので、フラットケーブルも購入しました。XilinxのJTAGは2.54mmピッチではなく2mmピッチの14ピン (7ピン2列)なので注意が必要です。フラットケーブルとHS3を繋ぐためのピンヘッダも秋月で購入です。

最後に開発環境です。つい最近、Vivado HLSが無償のWebPACK Editionでも利用できるようになりましたが、ここはやはりDesign Suiteを使いたいところです。フル機能の正規ライセンスはお高いので、Zynq-7000に限定されたDesign Editionが利用可能になるvoucher(バウチャー, =クーポン)を秋月で購入しました。DigilentのZYBO用らしいですが、同じZynqなので気にしない方向で。

intel Edisonでドハマリ

書籍『intel EdisonではじめるIoTプロトタイピング』が先日発売されました。これを参考にintel Edisonで遊ぼうと目論み、書籍の発売日である19日にintel Edison kit for Arduinoを購入に秋葉原へ向かいました。が、秋月もマルツもEdison単体やBreakout版は在庫があるのにArduino版のみ売り切れ。マジっすか。

仕方がないので帰宅してマルツの通販で昼過ぎに注文したところ、当日の晩に発送されて翌朝には配送されてきました。素晴らしい。

続きを読む

ご無沙汰してます

気が付けば、前回の記事から半年が経過してしまいました。ポータブルダイポールアンテナの製作、GROMでツーリング、Parallellaネタ、その他色々ありましたが、土日も関係なく仕事が入ってしまっている状況が続いてしまっています。

来年はこの状況が改善できるとよいのですが……