快適個人用Linuxサーバー構築記

はじめに
サーバーを調達
Virtual Private Server を調達
SSHの設定
SSHでサーバーにログインして、SSHの設定を行う。
iptables
iptablesを設定してファイアウォールをつくる。
認証局
公開鍵の認証局をつくる。
Postfix
SMTPサーバー。
IMAPサーバー
IMAP & POP3サーバー。

ソフトウェアのつかいこなし

はじめに
Linuxのソフトウェア
Linuxで動く便利なソフトの使い方。
PHP
Excel
バーコードの作り方
バーコードを生成するプログラム。
Perlのスクリプト
Perlで開発したソフト。

開発室

はじめに
主にLAPPの話
ZendFramework Application
ZendFrameworkのApplicationを使って開発する。
文献職人
論文の引用文献(Reference)を作成するソフト
Google Logo Collector
Googleのロゴ収集プログラム。
Loading Circle Maker
コンピュータの待ち時間に表示する時計を作成するプログラム。
アクリルアミドゲル作成
希望する濃度のアクリルアミドゲル(SDS-PAGE用)を作成するのに必要な試薬量を計算します。
算数のおけいこ
小学生の算数のおけいこ。

クラスターコンピュータをつくる

雑記帳

はじめに
RAD-tag
ゲノムを二種類の制限酵素で切ったときに適当な長さの断片はどのぐらいとれるのか。
bwa
マッピングツールとしてbwaを使ってみる。
stats
PHPの統計ライブラリstats。

Linuxでウェブ、メール、ファイルサーバーをつくった記録。

クラスターコンピュータは複数のコンピュータをまとめて一体として動作するようにしたものです。なぜまとめているかというと速く計算を行うためです。計算を速くするためにはいくつかの方法が考えられます。

  1. 演算速度を速くする。例えばCPUを速くする。
  2. 専門の演算装置を用いる。例えばGPUを使う。
  3. みんなで協力して行う。例えばCPUを増やしたり、コンピュータを増やしたりします。

例えば1から100までの和を求める計算を考えてみましょう。一回の足し算に1秒かかるとすると99回の足し算で99秒かかります。1のCPUを速くする方法は一回の計算時間を短くすることに相当します。0.5秒になれば半分の時間、0.1秒になれば10分の1の時間で終わるようになります。

もう少し頭を使ってnまでの和を求める公式n(n+1)/2を使うことを考えます。この公式があれば1から100までの和を求める計算は1回の足し算、1回の掛け算、1回の割算で終わります。これは2の専門の演算装置を用いることに似ています。専用の(1からnまでの和を求める公式)を使って、そこの部分だけを速くすることができます。しかし、専用の装置というのは一般的な計算には使えないことが多いので目的とする計算が変わると役に立たないことがあります。

計算を分割して、同時に実行する方法が3です。1から10まで、11から20まで...91から100までというように計算を分割して10人で計算をすると1回の足し算に1秒かかる場合でも9秒で終わります。それから10人の計算を集約すれば追加で9秒、全体で18秒で終わることになります。実際には計算を分割してそれぞれに指示を与えたり、集約したりするのに時間がかかるので10人でやれば10倍になることはありませんが並列で実行することで速く計算を終えることができます。

並列計算の方法

並列度を上げる方法にはいくつかあります。

マルチコアにする

CPUにある演算装置を増やしたものがマルチコアCPUです。マルチコアCPUでは複数のCPUが存在するので同時に計算を行うことができます。しかし、複数のCPUで同時に計算させるためにはアプリケーションの対応が必要です。一つの机でノートを共有しながら計算を行うためには互いにノートの使い方の合意をしないといけません。一人が読んでいる部分にもう一人が書きこんでは混乱してしまうからです。二人、四人、八人と人数が増えるにつれルールは複雑になってきます。

マルチプロセッサにする

これはCPUを二つ、四つと増やす方法です。マルチコアと似ていますがもう少し距離が離れています。でもいろいろな部分を共同して使うのでアプリケーションが対応しないといけません。

コンピュータの数を増やす

これは複数のコンピュータをネットワークでつなぐ方法です。部屋ごとに人がいて、建物全体で計算を行うイメージでしょうか。それぞれの独立度が高いのでぶつかることは少ないのですが、互いに離れているので連絡が遅くなります。クラスターコンピュータはこれに相当します。

クラスターコンピュータのいいところはコンピュータの数を増やすことが容易であることです。マルチコアやマルチプロセッサの並列度を上げるには基盤の設計などができないといけませんが、マルチコンピュータにするにはコンピュータを用意してネットワークにつなぐだけです。またプログラムのつくりかたも簡単です。並列で処理できる部分を分割するプログラムと、それを処理する部分、最後にまとめる部分のプログラムをつくれば並列計算のできあがりです。

このウェブページでは複数のコンピュータをまとめてクラスターコンピュータとして動かすまでの記録を紹介します。