2010-11-26 37 views
6

當使用omp_set_dynamic時,OpenMP運行時如何確定最佳線程數?omp_set_dynamic - 運行時如何確定線程數?

例如是使用了某種時序機制還是編譯器給運行時提示了任務大小有多大?

+0

它完全實現特定。最有可能的是,除非使用嵌套並行塊,否則最終將使用所有可用內核 – Anycorn 2010-11-27 03:08:00

回答

2

我不認爲OpenMP會確定應用程序的「最佳」線程數,任何可能的「最佳」一詞都可能。正如@aaa所評論的,當omp_set_dynamic爲真時,運行時的行爲是特定於實現的。

我不認爲當前的Fortran/C/C++編譯器可以向運行時提供定時或任務大小等信息。

我相信這個功能是可用的,所以調度程序(和類似的)可以管理機器上的程序,吞吐量或類似的。