我正在执行一项操作,我们称之为CalculateSomeData。CalculateSomeData 在连续的“代”中运行,编号为 1..x。整个运行中的代数由CalculateSomeData的输入参数固定,并且是先验已知的。单代需要 30 分钟到 2 小时才能完成。其中一些可变性是由于输入参数造成的,并且无法控制。但是,这种可变性的一部分是由于硬件容量、来自其他进程的 CPU 负载、网络带宽负载等因素造成的。每代可以控制的一个参数是 CalculateSomeData 使用的线程数。现在这是固定的并且可能不是最佳的。一世' 我想跟踪每一代所花费的时间,然后有一些算法来调整线程的数量,以便每一代后续的计算时间都在前一代的计算时间上有所改进(最小化时间)。我应该使用什么方法?遗传算法的适用性如何?直觉告诉我,这个范围会相当小——在双四核处理器机器上可能有 1 到 16 个线程。
非常感谢任何指针、伪代码等。