このブログでは、他の多くの人と同様に、さまざまな著者(私を含む)が、並列タスクとあらゆる種類の「多くの」用語がいかに優れているかについて頻繁に書いています。 しかし最近、私はよくこの写真の小さな男のようにタスクの完了を待つコンピューターの前に座り始めました。 さらに、2つのコアを備えたコンピューターと4つのコアを備えたコンピューターの両方で。 完了するのを待っているこれらのタスクは何ですか?
タスク1-ビッグロングテスト
ソフトウェア製品を開発するときは、とりわけ、C / C ++の数十のテストプロジェクトでコード分析を実行する自家製のテストシステムを使用します。 4つのコアを持つマシンでは、テストは1時間半実行されます。 もちろん、テストシステムでは、コアの一部を使用することも、テスト中にすべてが遅くならないようにプロセスの優先順位を低くすることもできます。 ただし、テスト結果(合格/不合格)をより早く知りたいので、マシンをフルにロードして、邪魔しないようにすることをお勧めします。 したがって、ユーザー(テストを開始したプログラマー)が座って作業の完了を待ちます。 また、マルチタスクを使用しても、このマシンで何か便利なことをすることはできません。 解決策? ハードウェアマルチタスク-2台目のコンピューターまたはラップトップ。 さて、またはコンピューターが忙しいときにお茶を飲むことができます...
タスク2-ユーザーインターフェイスのテスト
ソフトウェア製品の開発時に使用する別のシステムにより、ユーザーインターフェイスのテストを自動化できます。 これは、プログラムで必要なウィンドウを開き、ボタンやメニュー項目をクリックするツールです。 このツールは鉄を特に必要とせず、デュアルコアマシンで十分です。 しかし、ユーザーインターフェイスのテストを除き、コンピューターのコアの数に関係なく、現時点では何もできません。 システムは必要なボタンをクリックしようとするため、必要なウィンドウを開き、必要なメニュー項目を選択します。 そして再び、私は座って、これが終わるまで待たなければなりません。 さて、2台目のコンピューターとお茶については、それは明らかです...
タスク3-インターネットからファイルをダウンロードする
33,600のモデムを使用していたとき、私は幸せな時代が来て、ファイルをすぐにダウンロードできることを望んでいました。 楽しい時が来ましたが、私はまだ非常に長い間ファイルをダウンロードしています。 インターネットの速度に関係なく、すぐにはダウンロードせず、数時間でしかダウンロードできないものが常にあります。 そして、これが本当に必要なものである場合、再び私は待たなければなりません。 ファイルをダウンロードするための並行した方法は根本的に問題を解決しません。
並列化によってすべてが改善できるわけではありませんか?
マシンのコアの数にかかわらず、ユーザーが作業の完了を待たなければならないという事実につながるタスクが常に存在することがわかります。 これはソフトウェア開発で何につながりますか? 最終結果の準備ができる前に、できるだけ早く作業の最初の結果をユーザーに提供する必要があります。 上記の3つのタスクでそれを行う方法は次のとおりです。
- テストシステムは、最後ではなく各テストの過程で結果をすぐに表示します。 その結果、テストで故障があることがすぐにわかる場合、完了を待つ必要はありません。
- エラーが最初に検出されたときに、ユーザーインターフェイスのテストが中断されることもあります。
- インターネットからのファイルダウンロードプログラムは、ダウンロードが完了する前に、可能であればファイルの内容を表示することを学びました。 はい。また、オンラインビデオなど、ファイルをダウンロードしないサービスを積極的に開発しています。
要約:プログラムを開発するときは、ユーザーができるだけ早く結果を操作できるようにします。 また、並列プログラミングテクノロジの奇跡がユーザーを満足させることを期待しないでください。
この投稿は何についてですか? 一般的に、特に並列技術のパフォーマンスに関しては間違いなくコンピューターが開発されていますが、ユーザーがコンピューターの近くでできる限り待たされることがないように、ソフトウェアソリューションを検討する必要があります。 独自のプログラムを開発するときは、このことに留意してください。