Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 「100種類の学習済みモデルの性能調査をしておいて、テストデータは10種類あるよ」 こう言われた場合、作業の方法は複数ある。 1000(100 x 10)回試験を実行する。 プログラムを書いて自動化し、1回の実行で1000回試験を行えるようにする。 テストデータを1つに結合して100回試験を行い、後で10種類に戻す。 1はどんなに1回の試験に時間がかからなくてもまず選択しないだろう。プログラムに多少自身があるならおそらく2を選んだのではないか。 2を選んだ理由は「自動化できてるから待ってるだけで終わる」とか「人的ミスが減り、時
parallel NAME SYNOPSIS DESCRIPTION OPTIONS EXAMPLES SPREADING BLOCKS OF DATA TIME POSTFIXES UNIT PREFIX QUOTING LIST RUNNING JOBS COMPLETE RUNNING JOBS BUT DO NOT START NEW JOBS ENVIRONMENT VARIABLES DEFAULT PROFILE (CONFIG FILE) PROFILE FILES EXIT STATUS DIFFERENCES BETWEEN GNU Parallel AND ALTERNATIVES BUGS REPORTING BUGS AUTHOR LICENSE DEPENDENCIES SEE ALSO parallel_examples GNU PARALLEL EXAMPL
最近のコンピュータは複数のCPUコアを持っているので並列にコマンドを実行することができます。 たくさんの同じようなファイルに同じ処理を実行することは、私のやっているバイオインフォマティクスではよくあります。 しかし自分で並列に実行するスクリプトを書くことはそれほど簡単ではなく、ログや実行結果の確認など煩雑な処理を書かなければいけません。 この記事では、そうした処理を簡単にするGNU parallelというツールを紹介します。 GNU parallel UNIX系のOSではインストールはとても簡単です。MacでしたらHomebrewを使って、Linuxでは各ディストリビューションのパッケージマネージャからインストールできます。 詳しくはGNU parallelのウェブページを参照して下さい(http://www.gnu.org/software/parallel/)。 Homebrew: b
# !/bin/bash from="a/" to="b/" ex="*.png" find $from -name $ex | parallel -j+0 "cjpeg -outfile $to{/.}.jpg {}" gnu parallel -j+0: 最大論理コア数で実行 {}: パイプでもらった引数(ex. a/001.png) {/.}: パイプからもらった引数をファイル名だけにして(/)さらに拡張子も取る(.)(ex. 001) そのた Q. print0とかつけなくていいの? A. よい。ユニコードだろうがスペースだろうが突っ込めば思ったとおりに'\n'デリミタで動いてくれる。parallelもcjpegも良い子。
プログラムを並列処理する GNU Parallel というプログラムがある。このプログラムの作者 Ole Tange が usenix February 2011, Volume 36, Number 1 に “The Command-Line Power Tool” という記事を書いていたので読んでみた。6ページで GNU Parallel の主要機能がひと通り解説されているので、GNU Parallel の機能をピンポイントでしか知らない人(=自分)が読むと、いろいろと使いどころが湧いて来ると思う。 GNU Parallel: The Command-Line Power Tool February 2011, Volume 36, Number 1 Authors: Ole Tange https://www.usenix.org/publications/login/februar
コマンドの並列処理を行う際、個人的にはGNU Parallelコマンドを使用するか、xargsで-Pオプションを付与するかのどちらかを使うことが多いのだが、GNU Parallelのオプションや使い方についてちゃんと調べた事がなかったので、調べてまとめてみることにする。 なお、検証に利用するGNU parallelのバージョンは以下。 blacknon@BS-PUB-DEVELOP:~$ parallel --version GNU parallel 20141022 Copyright (C) 2007,2008,2009,2010,2011,2012,2013,2014 Ole Tange and Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licen
皆さん今日もたくさんのサーバを相手にされていることかと思いますが、いくつかのサーバにアクセスして 1 秒間の統計情報(例えばvmstat 1 2)を集めてパッと表示したい時ってどうやってますかね?shell script を学びはじめたばっかりの僕はこんな感じで書いてました。 $ for i in host1 host2 host3; do ssh $i "vmstat 1 2 | tail -1"; done 0 0 0 329004 210836 14275360 0 0 0 2424 1410 1828 0 0 100 0 0 0 0 0 3716112 587704 25921684 0 0 0 488 1643 2026 0 0 100 0 0 1 0 0 555440 265560 14015548 0 0 0 4204 1534 2392 1 0 99 0 0 vmstatと
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く