并行方式开关

设置并行优化方式。 可能的方式是自动、确定性和机会性。

用途

并行方式开关

API 参数名称 V12.6.0 之前的名称
C CPXPARAM_Parallel CPX_PARAM_PARALLELMODE
C++ IloCplex::Param::Parallel ParallelMode (int)
Java IloCplex.Param.Parallel ParallelMode (int)
.NET Cplex.Param.Parallel ParallelMode (int)
OPL parallelmode parallelmode
Python parameters.parallel parallel
交互式 parallel parallel
标识 1109 1109

描述

设置并行优化方式。 可能的方式是自动、确定性和机会性。

在此上下文中,确定性意味着在同一平台上以相同参数设置对同一模型进行多次运行,将重现相同的解法路径和结果。 相反,机会性默示即使线程之间记时中或者在不同线程中执行任务的顺序中轻微的差异可能生成不同的解法路径,从而导致在并行线程中执行的优化期间不同的记时或不同的解法向量。 在多线程应用程序中,机会性设置承担更少的线程之间同步,因此可提供更佳的性能。

缺省情况下,CPLEX 应用尽可能多的并行性,同时仍然取得确定性结果。 即,您使用相同参数设置在同一平台上两次运行同一模型时,您将看到相同的解法和优化运行。 此情况称为确定性方式。

如果您无需决定性,那么提供了探索并行性的更多机会。 换言之,如果您不需要不变的可重复解法路径和精确相同的解法向量,那么 CPLEX 可以发现更多并行性可能性。 为了使用所有可用的并行性,您需要选择机会性并行方式。 在此方式中,CPLEX 将使用并行性的所有机会以便取得最佳性能。

但是,在机会性方式中,实际的优化可能在运行之间不同,包括解法时间自身和搜索中经过的路径。

确定性和顺序优化

并行 MIP 优化可能为机会性或确定性。

并行内点优化只是确定性。

并发优化可能为机会性或确定性。 在任一方式下,当六个或更多线程可用时,并发优化都会缺省启动主单纯形法、对偶单纯形法和 barrier 优化器。 如果十个线程可用于 CPLEX,那么并发优化将启动主单纯形法、对偶单纯形法、内点和筛选(如果筛选适用于当前类型的问题)。

提示:此并行模式参数也适用于分布式并行 MIP 优化。 即,您可以指示 CPLEX 以机会性或确定性方式执行分布式并行 MIP 优化。

回调和 MIP 优化

如果遗留回调或通用回调用于求解 MIP,那么在并行 MIP 优化中从不同线程执行回调的顺序可能无法确定,即使在确定性并行方式下也是如此。 然后,您负责确保您的回调不执行会导致机会性行为的操作,且以线程安全方式实施回调。

有关传统回调的说明,请参阅《CPLEX 用户手册》中的使用传统优化回调高级 MIP 控制界面(传统)

有关通用回调的说明,请参阅《CPLEX 用户手册》中的 "通用回调"主题。

确定性与机会性

此参数还允许您通过选择值 -1(负一)来关闭此缺省设置。 您可能希望关闭确定性搜索的情况包括您确认确定性并行 MIP 优化生成所预期的结果之后,希望利用机会性并行 MIP 优化的可能更快性能的情况。

表 1. 值

符号常量

Callable Library

符号常量

Concert Technology

含义
-1 CPX_PARALLEL_OPPORTUNISTIC Opportunistic 启用机会性并行搜索方式
0 CPX_PARALLEL_AUTO AutoParallel 自动:让 CPLEX 决定是调用确定性搜索还是机会性搜索;缺省值
1 CPX_PARALLEL_DETERMINISTIC Deterministic 启用确定性并行搜索方式

另请参阅:全局线程数CPX_PARAM_THREADS、"Threads