問題タブ [buildfarm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - オペレーティング システムのコンパイル時間
これは単なる一般的な質問です - 私は座って、ちょっとしたソフトウェアがコンパイルされるのを待っていました (ここでは Incredibuild を使用していますが、それでも 10/15 分かかる場合があります)。またはビスタ?
グーグルで調べましたが、実際に役立つ情報は見つかりませんでした
language-agnostic - Buildfarms : オプション
ここでは Incredibuild を使用して、分散方式でコードをコンパイルします。ホーム ネットワークで使用できるオープン ソース (または無料) の代替手段があるかどうか疑問に思っていました。
それができない場合、Visual Studio と適切に統合された他の単純なソリューションはありますか?
編集: 手を汚して、必要に応じて各マシンのすべてを手動で構成できることを非常に嬉しく思います。
java - 同じJavaアプリケーションサーバー内の異なるバージョンのアプリケーション
20を超えるGlassfishJavaアプリケーションサーバーでcitrixnetscalarを利用しています。残念ながら、これら2つの異なるアプリケーションのコンテキストは同じであるため、新しいバージョンをデプロイする前に、以前のアプリケーションを削除する必要があります。このエラーが発生しやすいプロセスは、ビルドでの注意不足やその他の問題により、いくつかの問題を引き起こします。緊急の場合は、すべてのトラフィックを前のアプリケーションにリダイレクトするだけです。
かなりの数のサーバーで異なるバージョンのアプリケーションを同時に実行するためのベストプラクティスは何ですか?
編集:私の頭に浮かんだもう1つの簡潔で一般的な例は、GoogleApplicationEngineです。GAEでは、さまざまなバージョンを必要なだけデプロイできます。ただし、トラフィックは実行時にスムーズに異なるアプリケーションにリダイレクトできます。
ありがとう
unix - make を使用して独立したタスクを並行して実行する
並行して実行したいコマンドがたくさんあります。コマンドはほぼ同じです。それらはほぼ同じ時間かかることが予想され、完全に独立して実行できます。それらは次のようになります。
シェル スクリプトでそれらすべてを並行して起動することもできますが、システムは、CPU をビジー状態に保つために厳密に必要以上にロードしようとします (各タスクは、完了するまで 1 つのコアの 100% を使用します)。これにより、ディスクがスラッシングし、貪欲でない実行方法よりも全体が遅くなります。
最良のアプローチは、おそらくn
タスクの実行を維持することn
です。使用可能なコアの数はどこにありますか。
車輪の再発明はしたくありません。make
この問題は、Unixプログラムでは既に解決されています (-j n
オプションを使用した場合)。次のような線形サイズの Makefile を回避するために、上記の一般的な Makefile ルールを記述できるかどうか疑問に思っていました。
最良の解決策が使用するのではなくmake
、別のプログラム/ユーティリティを使用することである場合、依存関係が合理的である限り、私はそれを受け入れます(make
この点で非常に優れていました)。
opencv - buildfarm から最新のビルドをダウンロードする方法
おそらく初歩的な質問ですが、BuildFarmについてお聞きしたいです。
たとえば、OpenCV の公式サイトにアクセスしてBuildFarmへのリンクを見つけました。
http://build.opencv.org/#/summary/
さまざまなプラットフォームでの BuildBot によるすべての最新ビルドのリストがあります。そこから最新のビルドをダウンロードしたいのですが、リンクが見つかりませんでした。
BuildFarm は最新のビルドへのリンクを提供することになっていますか? これらのビルドをダウンロードしても安全ですか?
上記のファームからダウンロードする方法を知っている人がいたら、助けてください。
git - 複数のチェックアウト済みバージョンを同時にアクティブにしながら、単一の git リポジトリを効率的に維持しますか?
TLDR :
さまざまな進行中のバージョンの多くのブランチを持つアプリケーション用の単一の git リポジトリがあります。このレポの複数のコピーが必要です。これは、異なるブランチまたはコミットでチェックアウトできますが (用語が間違っていますか?)、冗長なファイルの可能性がある複数のコピーを実際に保持する必要はありません。
ロングバージョン:
私はパフォーマンスを改善しようとしているチームと一緒にアプリケーションに取り組んでいます。これは非常に経験的なプロセスであり、さまざまなアプローチがそれぞれ独自のブランチに実装されており、うまく機能するものを選択するために多くのテストが行われます。
私は独自のブランチでいくつかのアプローチを開発しており、アプリケーションの複数のバージョンのパフォーマンスと正確性のテストも行っています。複数のビルドを維持するために、各バージョンのコピーを用意し、そのバージョンを使用してビルドします。このバージョンは、現在の環境で使用するバージョンを選択できるスクリプトを使用して、バージョン固有の場所にインストールされます。
正確性テスト システムでは、同じソース ツリーでの同時テストは許可されません。そのため、バージョン自体に複数の構成がある場合、それらを同時にテストすることはできません。このテストを完了するのに 1 時間かかる場合があるため、各構成のソース ツリーを簡略化し、上記のようにビルドして別の場所にインストールします。これにより、複数のテストを同時に実行できます。
これは私の理想的な設定ではありませんが、私の問題は、これがすべて大学の HPC クラスターで行われていることです。このクラスターにはかなり厳しいディスク クォータが設定されています。ユーザーの /home ディレクトリには 15Gb のデータしか含めることができませんが、ファイルの数に制限はありません。ユーザーの /extra ディレクトリ (システム固有のストレージ システム) は 200Gb のデータを持つことができますが、ディスク ストレージのギガバイト (この場合は 200*600、つまり 120000) あたり 600 個のファイル (ディレクトリを含む) しか持つことができません。残念ながら、私の設定では /home のディスク クォータと /extra のファイル カウント クォータを超えています。
友人が、必要に応じてディレクトリを tar/untar するという彼のプロセスを提案しました。この追加のプロセスは、すでに退屈なセットアップのもう 1 つの問題点のように思えます。
中心的な問題は、git リポジトリがやや大きいことです: ディスク上で ~650Mb、+7500 ファイルです。私は、これらのリポジトリを約 17 個、さまざまなライブラリと一緒に持っており、多くのパフォーマンス テスト用のもの (かなり重量があります) を持っているため、クォータの制限を超えてしまいます。もし魔人がいたら、物理的に一度だけ存在した魔法の git リポジトリをくれるように頼むでしょう。各「コピー」は、他のブランチをいじることなく編集およびコミットできるブランチを持つ git リポジトリの通常のコピーのように見え、そのように動作します。しかし実際には、そのコピーはシステムによって維持される「ビュー」でした。
質問:
私の魔法の願いのようなものはありますか?
時間とリソースが限られている人々は、この問題を効果的に管理するにはどうすればよいでしょうか? (このすべての作業は、ビルド ファーム/CI テストのようなものです。)
主な答えは「いくつかのリポジトリを削除するだけ」になることはわかっていますが、私は実際にこれらのかなりの数を週のさまざまな時間に使用しており、「ワックア-」をプレイする必要があります。レポ」は苦痛になるでしょう。
tensorflow - bazel-buildfarm を使用した TensorFlow のビルド
リモート実行 + bazel-buildfarm によるキャッシングを使用してソースから TensorFlow をビルドしようとしています。サンプル構成ファイル @ https://github.com/bazelbuild/bazel-buildfarm (examples/
ディレクトリを参照)を使用して、bazel-buildfarm サーバーとワーカーをセットアップしました。
TensorFlow (マスターのヘッド) のソース リポジトリ内の .bazelrc に次のルールを追加しました。
次に./configure
、ローカルの非リモートビルドで成功することがわかっているオプションを使用して実行しました。
TensorFlow ビルドを開始しました。
その後まもなく、次のエラー メッセージが表示されます。
このメッセージの解釈を手伝ってくれる人はいますか? 何が起こっているのか、bazel-buildfarm を使用して TensorFlow をビルドする方法を知りたいです。