2025-02-20

GNU parallel = xargs -n1

かなり以前から「GNU Parallel」に関心がありましたが、使用したことがありませんでした。名前からすると分散処理に役立つのだろうとは思っていましたが、どのように利用するのか具体的なイメージがわかなかったのです。

 

使い方が分からないので使っていないのですが、そうは言っても、使ってみないと何に使えるのか分かるようになりません。ひとまずインストールしてみて、簡単に使ってみました。参考にしたのは、公式サイトにある「GNU Parallel Tutorial」です。

 

使ってみた感想としては、便利そうです。ただし活用できる状況を上手く見つけられるかに依存する気がします。私自身では、これまで「find」と「xargs」を組み合わせた処理をすることが多かったので、その延長線上として、利用できそうです。公式サイトにある「GNU PARALLEL EXAMPLES」でも、次のように記されています。まさにこの文がGNU parallelが何であるかを一言で表していると思います。

 GNU parallel can work similar to xargs -n1.

 

GNU parallelには「--xargs」というオプションがあるようです。私としては、このオプションをデフォルトとして使用し、「GNU parallel --xargs can work similar to xargs.」として利用しようかなと考えています。

2025-02-19

バッチキューのようなもの

以前にOpenVMSを使用した時には、「バッチキュー」というものがありました。一連の処理をスクリプト(コマンド・プロシージャ、通称コマプロ)としてファイルを作成しておき、それをバッチキューに登録しておくと、キューがFIFOとして処理をしてくれます。UNIXで言うところのバックグラウンド処理のようなものですが、それとバッチ処理は同じではありません。

 

UNIXでコマンドラインの末尾に「&」を付けてバックグラウンド処理にした場合、何の制御もなされないので、無茶をすればマシン負荷が急上昇してしまうでしょう。またUNIXには「batch」とか「at」というコマンドが用意されていますが、UNIXにはバッチキューの仕組みが用意されていないので、コマンドが「batch」だとしてもバッチ処理にはなりません。

 

MS-DOSや今日のWindowsでも、拡張子を「.bat」として「バッチファイル」というものを作成することがありますが、これもまたバッチ処理とは関係ありません。MS-DOSを開発していた当初は、当時の汎用機におけるバッチジョブのことが頭の片隅にあったのかもしれません。しかしMS-DOSのバッチファイルと汎用機のバッチ処理は、全く関係ありません。

 

FreeBSDやLinuxのようなUNIXの世界にも、OpenVMSや汎用機のようなバッチキューの仕組みがないのだろうかと、ずっと探していました。このような疑問を相談すると、日常的にUNIXを利用している人々は汎用機などの利用経験が浅いのか、なかなか問題意識が理解されません。Message Passing Interfaceを使えば良いなどと助言されたこともありますが、方向性が違う気がします。またPortable Batch Systemというものもあるようで、これが希望するものに近いかもしれませんが、ちょっと違うような気もします。

 

UNIXの設計思想と汎用機の世界観は、ずいぶん離れている気はするのですが、それでもUNIXの世界で汎用機的なバッチキューの仕組みを必要とする状況はあるのではないかと思います。きっと誰かが何か作っているはずだと思い、以前ならGoogleで検索し、最近ならGeminiに尋ねてみたりしましたが、紹介されるのはMPIだったりPBSだったりして、私が求める方向の回答がありません。

 

そんな中で、ふとpueueというものがあることを「Linuxメモ : あると便利かもしれないRust製コマンドラインツール」で知りました。こういうものを求めていたのです。RUSTで作成されているようです。どのようなものなのか検証するために、VirtualBOX上のUbuntu 24.02 LTSで確かめてみようと思いましたが、aptでインストールできるパッケージは存在しないようです。そこで、まずaptでRUSTの環境を入れ(apt install rustc)、その後にcargoでpueueを入れました(cargo install pueue)。インストール先が「~/.cargo/bin」になっているので、PATHを通しておく必要があります。

 

まだ簡単に動作を確認しただけですが、バッチキューのような仕組みが提供されており、気に入りました。

2025-02-13

「定理1.3から」が分からない

放送大学で数年前に受講した「入門微分積分('16)」の印刷教材を読み直しています。受講していた当時は、(本当はよくないことだと思いますが)流し読みをしていただけでした。その反省を踏まえて、印刷教材の記述における論理の展開や式の導出などを納得できるところまで考えながら読んでいこうと思っています。

 

「1.8 課題1.Cの解決」を読んでいると、数列{an}において、以下の結果が得られます。ここまでは、理解できました。

0 < an < 2, n = 1, 2, ...   (1.16)

 

これを踏まえて、次のように記述されています。

すなわち、数列{an}は増加数列であることがわかります。また、(1.16)は、{an}が上に有界であることも示しています。 ゆえに、定理1.5より、{an}は収束します。この極限値lim an (n→∞)をαとおきましょう。定理1.3から、0 ≦ α ≦ 2です。

 

さて、この記述にある「定理1.3」とは、次のようなものです。

定理1.3 2つの数列{an}、{bn}は収束して、lim an (n→∞) = α、lim bn (n→∞) = β であるとする。任意のnに対して、an ≦ bnであるならば、α ≦ βである。

 

記述は、「極限値をαとおく」→「定理1.3から」→「0 ≦ α ≦ 2である」となっているのですが、この論理の展開がよくわかりません。「極限値をαとおく」のは構わないのですが、「定理1.3から」→「0 ≦ α ≦ 2」と何故なるのでしょうか?

 

些細な疑問も解決していきながら読み進めていくつもりですが、前言を翻すことになってしまいますが、この疑問は保留として先に進もうと思います。

2025-02-10

等比数列の和の公式

数年前に放送大学で「入門微分積分('16)」(石崎克也放送大学教授)を受講しました。既に単位は取得済みではあるのですが、お恥ずかしながら、充分に理解しているとは言えません。この状態で、微分方程式とか量子力学や相対論などを勉強しようとしても、結局はなんとかなるかもしれませんが、自分自身として納得できません。あらためて印刷教材を最初から読み直しています。

 

この書籍に限りませんが、記述内容や数式などを「表面的」な理解で済ませてしまうと、読了しても不完全燃焼感に苛まれてしまいます。今回は数式の展開も納得するまで理解してから読み進めようと決意しています。ただし書籍によっては、わからなくても先に進み、あとから戻って再読することを推奨している場合があります。そのような手法も理解できますが、それを繰り返してきた挙句に今があることを考えると、今回は先を急がずジリジリと進んでいこうと考えています。

 

「第1章 実数・数列」の「1.6 解析学基本定理」において、ネピア数を与える数列{an} = (1+1/n)^nが上に有界であることを示す内容が記されていました。ここで以下のように式が変形されていたのですが、何故こうなるのか、わかりませんでした。

 an < 1 + 1 + 1/2! + 1/3! + ... + 1/n!

< 1 + 1 + 1/2 + 1/2^2 + ... + 1/2^(n-1)

= 1 + 2(1 - 1/2^n) < 3


1行目が2行目よりも小さいのは、2^(n-1) = 1 * 2^(n-1) ≦ 1 * 2 * 3 * ... * (n-1) * n = n! を踏まえているのは理解できました。しかし2行目から3行目の等号は何でしょうか?

 

Googleなどで情報を検索できるようになった今日は、できなかった以前に比べて、とても有難いと思います。できなかった頃であれば、図書館で書籍を手当たり次第に探るとか、詳しそうな人に尋ねるしかありませんでした。いまならGoogle(もし好みであればGemini)を使えば、全く見当もつかないとしても、手掛かりを得ることができます(可能性としては)。

 

結局は、初項aで公比rの等比数列の和の公式が使われているだけとわかり、納得しました。この公式を昔々習っていたことを思い出しましたが、普段使うこともないので、忘れていました。

2025-02-08

2025年2月の「100分 de 名著」はデュルケームの『社会分業論』

NHKで放映されている「100分 de 名著」を全て視ているわけではありませんが、2025年2月の『社会分業論』(エミール・デュルケーム)は視るつもりです。また別売りのテキストも購入し、こちらは既に読み終えました。

 

ちくま学芸文庫から出ている『社会分業論』は、文庫本なのに、800ページもあって、しかも価格が2,090円(税込)ということで、ボリュームも値段も信じられません。これを読まずに『社会分業論』を軽々しく論じることはできませんが、NHKのテキストで解説されている事柄に共感しました。88ページに書かれている内容を、ちょっと長くなりますが、引用します。

 社会から分離した個人は、すでに見たように、事実として自律していきます(自律せざるをえません)。同時に、他者や社会への依存が始まるのです。社会からの分離によって個人の自律が可能になりますが、同時に、他者や社会への依存が必要になります。依存なき自律は、自律というより孤立です。

他方、 本来社会から分離しているはずの「個人」が自律なしに依存するのであれば、もはや一体化でも依存でもありません。それは、フロムが見抜いたように「自由からの逃走」であって、「癒着」というべきでしょう。

 

通俗的には、自律した個人は、何者にも依存しない(だろう、はずだ)というイメージがあります。しかし、自律した個人は同時に他者や社会に依存するのであり、依存しない自律は、もはや孤立であるというのは、虚を突かれた思いです。

 

現代社会は、「自律」を強調するが余りに、必要以上に「依存」を拒否しすぎるきらいがあると思います。しかも「自律」するというのは、決して容易ではありません。その挙句に、自律しない個人が依存だけしてしまうと、容易に権威主義や全体主義に陥ってしまうという主張には賛同します。

 

私の個人的な体験においても、「自分は、他人に指示されたことを坦々とこなしたいんだ。自分自身でやることを考えるのは嫌なんだ」と訴える人物に遭遇したことがあります。このような主張をする存在が世の中の一部なのか多数を占めつつあるのか、判断する情報を持ち合わせていませんが、それに流されてしまわないように意識していたいと思います。

2025-02-07

『現代民俗学入門』は、さらに奥へ探るための入り口となる気がする

近所の書店で平積みになっていた『現代民俗学入門』を買ってみました。購入前にパラパラと立ち読みしてみましたが、面白そうだと思ったので、買って読んでみることにしました。

 

民俗学といえば、柳田国男と折口信夫が有名です。しかし名前を知っているだけで、その学問的自体を知っている訳ではありません。本書は、書名からして入門書です。ひとつの話題が見開きページで完結しているので、本当に入り口が提示されるだけです。しかし「読んでみよう」とか「参考文献」として、その話題を深く追求していくための手掛かりも提示されているので、それらを参照していくことで、さらに学ぶことができそうです。

 

この本は、一通り読んだらそれで終わりというものではなく、手元に置いておき、何かの折に参照することができるのではないかと思いました。この本に書かれているのは、現代民俗学の現状を網羅して、この一冊で完結するような「入門書」ではなく、この本を入り口にして民俗学を学ぶ旅に出発するための手引書ではないかと感じました。