2

私はしばらくの間 git-annex を使用してデータを管理してきましたが、非常に満足のいくものでした。

ただし、神経画像データを処理する場合、git annex のパフォーマンスはかなり不足しています。この種のデータは多くの場合、多くの画像ファイル (5KB) として提供されます。たとえば、実験ごとに参加者ごとに約 36.000 です。いくつかの実験でも、私のデータ リポジトリが 100 万をはるかに超えるファイルを蓄積していることがわかります。

実行中の巨大なラグを軽減する方法はありますgit annex syncgit annex get? そうでない場合、神経画像データの複数のリポジトリを管理できる (ほぼ) 同様のソフトウェアはありますか?

4

2 に答える 2

3

多数のファイルは、複数のレベルで非効率的です。おそらく、神経画像ソフトウェアを改善できますか?

それができない場合は、いくつかの方法があります。1 つ目は、データを SSD に保存することです。これらの操作は、リポジトリ内の各ファイルのステータスを照会する必要があるため遅く、それらを SSD に配置すると、すべてのディスクの読み取りがはるかに高速になります。

もう 1 つは、特定のディレクトリ内のファイル数を制限することです。1 つの実験のファイルを分割できない場合がありますが、複数の実験のファイルを同じディレクトリに配置しないようにしてください。これは、ディレクトリのアクセス時間は、多くの場合、そのディレクトリ内のファイル数に比例するためです。

もう 1 つは、さまざまなファイルシステムまたはさまざまなファイルシステム構成を調査することです。すべてのファイルシステムが大きなディレクトリに適しているわけではありません。たとえば、ext3/4 では、ファイルシステム オプション dir_index を設定して、B ツリー インデックスを使用して大きなディレクトリへのアクセス時間を高速化できます。tune2fsプログラムを使用して設定します。

最後の絶望的なオプションは、これらの小さなファイルをすべて tarball や zip ファイルなどのアーカイブに結合することです。これにより、それらの操作が複雑になる可能性がありますが、処理する必要のあるファイルの数が大幅に削減されます。これが引き起こす複雑さの一部をスクリプト化することもできます。たとえば、これらの画像の 1 つを表示する必要がある場合、スクリプトは tarball を一時ディレクトリに抽出し、ビューアを起動して、終了時に抽出されたファイルを削除できます。

于 2015-11-23T19:41:49.197 に答える
1

私はdb48xに同意します。ニューロ イメージング ソフトウェアを変更できない場合は、実験ごとに 1 つのコンテナーを使用し (~180 MB が妥当なサイズです)、これを git-annex に保存できます。データ アクセスの場合、このファイルをメモリ内のループバックを備えた追加のファイル システムとしてマウントします。これにより、アクセス時間と git-annex の負担が大幅に削減されます。

于 2016-07-12T08:43:35.220 に答える