我寫了一個java代碼,它的運行時間很糟糕。我知道也許我的代碼效率不高,我不專注於提高效率。此時唯一重要的是更快地運行我的代碼。我有權訪問具有20個以上節點的羣集。以下是我的代碼部分需要花費太多時間運行的模式。循環迭代的第一個是完全獨立的。在多臺服務器上運行我的java代碼
for (int i = 0; i < 1000000; i++) {
for (int j = 0; j < 10000; j++) {
HashSet temp1 = new HashSet();
for (int k = 0; k < 10; k++) {
HashSet temp2 = new HashSet();
boolean isSubset = temp1.containsAll(temp2);
if (isSubset == true) {
BufferedReader input = new BufferedReader(new FileReader("input.txt"));
HashSet temp3 = new HashSet();
for (int l = 0; l < 10000; l++) {
boolean isSubset1 = temp1.containsAll(temp3);
}
}
}
}
}
根據我的分佈式計算的基本知識,我可以在多臺服務器上運行它,以獲得更快的結果,也是我認爲的MapReduce是另一種思路。我沒有任何並行處理經驗。我需要一些想法和方向,我該如何並行化它?有沒有平行的平臺? MapReduce是一個好主意?希望你能幫助我一些想法,教程或類似的例子。謝謝。
10到11功率迭代 - 我想你會需要很多機器 – KevinDTimm
@KevinDTimm:你說得對!我可以訪問超過20臺服務器。希望這已經足夠了。 – user2330489
可能實際上高於我認爲取決於'isSubset'多久的真實性 – dardo