Описание тега paralleltry

ParallelTry[f,{arg1,arg2,…}]`вычисляет параллельно, возвращая первый полученный результат.

Детали и опции:

  • ParallelTry автоматически распределяет вычисления между различными доступными ядрами и процессорами.
  • Любые оценки, продолжающиеся после получения k результатов, отменяются.
  • Если результат оценки одного из [f,{arg1,arg2,…}] $ Failed, то игнорируется.
  • Если не получено никаких результатов, кроме $ Failed, ParallelTry возвращает $ Failed.
  • ParallelTry [f,{arg1,arg2,…}] выделяет оценки [f,{arg1,arg2,…}] на разные ядра и процессоры, начиная с {arg1},
  • Если ядер больше, то некоторые из них не будут испробованы, если более ранние не вернут $ Failed.
  • ParallelTry принимает тот же параметр DistributedContexts, что и ParallelTable.

Основные примеры:

  • Найдите факторизацию числа, которую легко факторизовать:
    В 1: = ParallelTry[FactorInteger, Range[10^20 + 1, 10^20 + $KernelCount]]
    Out 1 =
  • Недетерминистически найти простое число в заданном диапазоне:
    В 1: = ParallelTry[If[PrimeQ[#], #, $Failed] &, Range[10^100, 10^100 + 1000]]Out 1=

Полная документация: http://reference.wolfram.com/language/ref/ParallelTry.html