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