問題タブ [parallel-builds]
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.
makefile - 「make-jN」を使用したcmakeと並列構築
ソースツリーに並列CMakeベースのビルドをセットアップしようとしていますが、
私は得る:
警告として。どうにかしてそれを修正することが可能かどうか誰かが考えを持っていますか?
visual-studio-2008 - maxcpucount オプションで MSBUILD を使用する際の問題
4 コア マシンで MsBuild を使用しています。次のコマンド ラインを使用して、大きな VC++ ソリューションに属する 4 つのプロジェクトをビルドします (4 つ以上のプロジェクトがあり、相互に依存関係はありません)。Visual Studio 2008 を使用しています。
maxcpucount
ビルド時間を短縮するために、オプションを利用しようとしていますが、機能していないようです。コマンドラインで提供している 4 つのプロジェクトのそれぞれが、各コアによってビルドされることを期待していました。残念ながら、ビルドの時間を測定しましたが、maxcpucount
オプションの有無にかかわらず、まったく同じ結果が得られました。
ここで私が間違っていることを知っていますか?
「MyVCppSolution.sln ソリューションの 4 つのプロジェクトを一度にビルドする」と言うのは正しい方法ですか、それとも 4 つまでのソリューションの 1 つのプロジェクトをビルドするたびに 4 つのプロセスを手動で実行する必要がありますか?
java - Java のコンパイル時に複数のコア/プロセッサを使用する
8 コアのデスクトップを使用して、Ant を使用して (javac ターゲットを介して) Java アプリケーションを構築します。複数のスレッドまたはプロセスを使用してコンパイルを高速化する方法はありますか?
複数の Ant タスクを並行して実行できることはわかっていますが、これを単一のコンパイル ターゲットに適用できるとは思いませんか?
visual-studio - Visual Studio 2010 で並列ビルドを行うにはどうすればよいですか?
VS 2010 で一度に複数の C++ コンパイル プロセスを実行するにはどうすればよいですか? つまり、オブジェクト モジュールを並行して構築するということです。一度に複数のプロジェクトをビルドすることに興味はありません ([ツール] > [オプション] > [ビルドと実行] < 並列プロジェクト ビルドの最大数については知っていますが、それは私が望むことではありません)。
基本的に、Visual Studio の「make -jN」に相当するものを探しています。
java - Javaコードを構築するための高速で保守が容易で、並列化可能な方法はありますか?
私は長い間、悪い慣行が他の悪い慣行の上に積み重なったビルドシステムに取り組んでおり、ビルドを書き直しているところです。関連する言語は C/C++、Fortran、Ada、および Java であり、当面は GNU スタイルの makefile を使用しますが、SCons などの他の代替手段を検討しています。
そうは言っても、「別のビルドシステムを使用する」などの形式の推奨事項ではなく、いくつかの特定の推奨事項を探しています。
私が今見ている特定のメイクファイルを作成した人は誰でも、次のような Java コードの順次ビルドを計画していました。
シリアルでビルドを実行する場合、これは正常に機能します。ただし、依存関係が混在するとすぐに、問題が大きくなります。
- C/C++ コンパイラには、依存関係を生成するためのオプションが組み込まれています。Java にも同様の機能はありますか?
- 依存関係を生成するためにサードパーティのツール (Jikes など) を使用する必要がありますか?
- 一般的に言えば、チームが Java 関連のものをビルドするために makefile を使用している場合、Java コンパイラを 1 回呼び出して、すべての
.java
ファイルを 1 つのコマンドラインでリストするのと、ファイルごとに 1 つのターゲットを指定するのとでは、どちらがより一般的.class
でしょうか?- これがより一般的である場合、これは厳密に単純化のためですか、それとももっと深い理由がありますか?
- 注:順次ビルドの場合、これがより高速なオプションであることは理解していますが、並列ビルドの経験的テストを行うための回答が必要です
unit-testing - Bamboo ビルドを「シリアル化」しますか?
継続的インテグレーション ビルド サーバーとして Bamboo v3.1.1 を使用していますが、ほとんどの場合、非常にうまく機能します。
私たちが抱えている問題の 1 つは、かなりの量のデータベース指向のテストを行っていることです。たとえば、ビルドは、共有データベース インスタンスでユニット テストと統合テストの一部を実行します。
これは、同じビルド プランに対して複数の Bamboo ビルドが同時に実行されている場合に問題を引き起こします。それらはお互いの足につまずいてデッドロックを引き起こし、通常、関連するすべてのビルドがこれにより失敗します。
並行ビルドは素晴らしいものですが、理論的には、ビルドを「シリアル化」するビルド プランを定義できるようにしたいと考えています。たとえば、複数のビルドを並行して実行しないようにします。
どうすればこれができるか知っている人はいますか?? Bamboo に「このビルド プランを並列化しないでください - 一度に 1 つのビルドをシリアルに実行する」ように指示する設定はありますか?
アップデート:
現在、私のビルド プロセスには次の 2 つの段階があります。
- コア ビルド (VS ソリューションのビルド、テスト データベースを最新のスクリプトに更新)
- テスト (NUnit 2.4)
「コア ビルド」は、複数回並行して簡単に実行できます。問題はありません。ただし、これらのテストの一部は唯一の共有「単体テスト」データベースにアクセスするため、「テスト」ステージを複数回実行することはできません。複数の「テスト」段階のプロセスが実行されている場合、それらは互いにデッドロックすることになります。
では、「コア ビルド」ステージを並列化しても問題ないが、「テスト」では実行中のビルドの数に関係なく、一度に1 つのインスタンスのみを実行することを Bamboo に伝えるにはどうすればよいでしょうか??
maven-3 - Maven 3 Parallel Gmaven 散発的な障害
私の Maven 3.0.4 並列ビルドは、次のエラーで断続的に失敗します。
[エラー] プロジェクト opcenter で目標 org.codehaus.gmaven:gmaven-plugin:1.2:compile (デフォルト) を実行できませんでした: 選択に一致するプロバイダーが見つかりません: 1.7 -> [ヘルプ 1] org.apache.maven.lifecycle.LifecycleExecutionException:プロジェクト opcenter で目標 org.codehaus.gmaven:gmaven-plugin:1.2:compile (デフォルト) を実行できませんでした: org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java: 217) org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) で org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) で org.apache.maven .lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) org.apache.maven.lifecycle.internal.LifecycleThreadedBuilder$1.call(LifecycleThreadedBuilder.java:167) org.apache.maven.lifecycle.internal.LifecycleThreadedBuilder$1.call(LifecycleThreadedBuilder.java:163) で java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) で java.util.concurrent. FutureTask.run(FutureTask.java:138) で java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) で java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) で java .util.concurrent.FutureTask.run(FutureTask.java:138) で java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java) :908) java.lang.Thread.run(Thread.java:662) で 原因: org.apache.maven.plugin.MojoExecutionException: 選択に一致するプロバイダーが見つかりません: org.codehaus.gmaven.plugin で 1.7。org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) の MojoSupport.execute(MojoSupport.java:85) org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) の MojoSupport.execute(MojoSupport.java:85) ... 13 より多くの.gmaven.plugin.ProviderMojoSupport.provider(ProviderMojoSupport.java:120) org.codehaus.gmaven.plugin.ComponentMojoSupport.feature(ComponentMojoSupport.java:49) org.codehaus.gmaven.plugin.ComponentMojoSupport.feature(ComponentMojoSupport.java) :42) org.codehaus.gmaven.plugin.ComponentMojoSupport.doExecute(ComponentMojoSupport.java:53) で org.codehaus.gmaven.plugin.MojoSupport.execute(MojoSupport.java:69) ... 15 もっと見る
親の pom.xml は、gmaven プラグインを次のように定義します。
「mvn groovy:providers」コマンドを実行すると、ランタイムがインストールされていることがわかり、シングル スレッドでビルドするとビルドが成功することに注意してください。
linux - 並列 make: -j8 をデフォルト オプションとして設定
-j
引数を使用して、ビルド プロセスのスレッド数を設定できます。たとえば、私は 4 コア + 4 仮想を持っています。書くと:make -j8
速度が4倍になります。
その値をデフォルトとして設定することは可能ですか? (たとえば、Linux Gentoo では、構成ファイルで、このデフォルト値を設定できます)。
ps私はArch Linuxを持っています
cmake - CMake で移植可能な並列ビルドを構成するにはどうすればよいですか?
どのビルド ツールを使用しても、並列ビルドを行うことは可能ですか?
Unix ではmake -jN
、N はスレッドの数を追加できます。Windows では、Visual Studio で並列ビルドに使用される に追加しました... CXX_FLAG "/MP"
(?) CMAKE_MAKE_PROGRAM
CMakeを実行しますか?
一般解とは?
私はこれを思いつきました: