编译程序的方法以及任务映射方法和任务调度方法
【专利摘要】本发明公开了一种编译程序的方法以及任务映射方法和任务调度方法。提供一种编译将在多核处理器上执行的程序的方法。所述方法可包括:通过将任务映射到源处理元件(PE)和目标PE并选择用于将所述任务从源PE发送到目标PE的通信方案来产生初始解决方案,对包括在初始解决方案中的映射和通信方案进行近似优化,调度所述任务,其中,在编译处理中指定通信方案。
【专利说明】编译程序的方法以及任务映射方法和任务调度方法
[0001]本申请要求2012年10月11日提交到韩国知识产权局的第10-2012-0113103号韩国专利申请的优先权,其公开通过引用整体合并于此。
【技术领域】
[0002]与以下描述一致的设备和方法涉及一种用于编译将在多核处理器上执行的程序以及多核处理器的任务映射和任务调度的方法。
【背景技术】
[0003]针对多核架构的特性的可比编程可提高多核架构的性能。
[0004]在使用多核处理器进行编程时,映射是指确定哪些处理元件将根据应用的单独部分或任务来执行,并且将所述确定表示为曲线图的处理。
[0005]此外,调度是在映射处理之后的处理。调度可确定由处理元件执行的各个任务的顺序和时序。
[0006]然而,在多核上执行的多核程序非常复杂,以至于手动编写程序导致低编程生产率和/或低程序质量。此外,通过映射和调度处理会增加编程的复杂性。
[0007]具体地,由于程序的高度复杂性,当程序开发者针对将在源处理元件和目标处理元件之间处理的每个核映射的任务单独指定特定通信方案时,会出现显著的困难。
【发明内容】
[0008]根据示例性实施例的一方面,提供一种编译将在多核处理器上执行的程序的方法,所述方法包括:通过将任务映射到源处理元件(PE)和目标PE并选择用于将任务从源PE发送到目标PE的通信方案来产生初始解决方案;对包括在初始解决方案中的映射和通信方案进行近似优化;调度所述任务,其中,在编译处理中指定通信方案。
[0009]根据另一例性实施例的一方面,提供一种在多核处理器中映射任务的方法,所述方法包括:将任务映射到多核处理器中的多个处理元件中的第一处理元件;以O和I之间的第一概率将所述任务从第一处理元件移动到第二处理元件;以O和I之间的第二概率将已经以第一概率被移动到第二处理元件的任务替换为被映射到第三处理元件的另一任务。
[0010]根据另一示例性实施例的一方面,提供一种在多核处理器中调度任务的方法,所述方法包括:尝试在第一时间段内调度两个或更多个任务,其中,所述两个或更多个任务将在多核处理器的两个或更多个处理元件上执行;如果调度尝试由于一个任务与另一个任务重叠而失败,则计算任务彼此重叠的时间的长度;在第二时间段内重新尝试调度所述两个或更多个任务,所述第二时间段等于第一时间段与计算的任务重叠的时间的长度的和。
【专利附图】
【附图说明】
[0011]通过参照附图详细描述示例性实施例,以上和/或其他方面将会更加清楚,其中:[0012]图1A和图1B是示出多核处理器的使用共享存储器彼此通信的处理元件的示图;
[0013]图2A和图2B是示出多核处理器的通过传递消息彼此通信的处理元件的示图;
[0014]图3是示出根据示例性实施例的映射任务和确定通信方案的方法的流程图;
[0015]图4是详细示出根据示例性实施例的改变初始解决方案的步骤的示图;
[0016]图5是示出根据示例性实施例的以概率β在处理元件之间切换任务的情况的示图;
[0017]图6是示出根据示例性实施例的以概率(1_β )将任务从一个处理元件移动到另一处理元件的情况的示图;
[0018]图7是示出根据示例性实施例的优化处理的流程图;
[0019]图8是示出根据示例性实施例的使用模数算法的指令调度操作的流程图;
[0020]图9是示出根据示例性实施例的使用修改的模数算法的任务调度操作的流程图;
[0021]图10是示出根据示例性实施例的编译将在可重构处理器上执行的程序的方法的流程图;
[0022]图11是示出根据示例性实施例的编译将在可重构处理器上执行的程序的方法的流程图;
[0023]图12是示出根据示例性实施例的由可重构处理器执行的任务映射方法的流程图;
[0024]图13是示出根据示例性实施例的由可重构处理器执行的任务调度方法的流程图。
【具体实施方式】
[0025]提供以下描述来帮助读者获得对本文描述的方法、设备和/或系统的全面理解。因此,本文描述的方法、设备和/或系统的各种改变、修改和等同物将被建议给本领域的普通技术人员。此外,为了更加清楚和简明,可省略对公知功能和结构的描述。
[0026]在整个附图和详细描述中,除非另有描述,否则相同的附图标号将被理解为指示相同的元件、特征和结构。为了清楚、说明和方便,可夸大这些元件的相对尺寸和描绘。
[0027]图1A和图1B是示出多核处理器的可使用共享存储器120彼此通信的处理元件的示图。
[0028]在图1A和图1B中,相同的标号表示相同的元件。
[0029]多核处理器的处理元件(PE) 112a和112b可彼此通信。参照图1A和图1B,处理元件通过共享存储器120彼此通信。
[0030]经由共享存储器的通信可按阶段执行,如下所示:
[0031]源PEl 12a可将数据写入共享存储器120。
[0032]共享存储器120将确认(ACK)发送到源PEl 12a。
[0033]一旦完成数据写入,源PE 112a可将同步(SYNC )包发送到目标PE112b。
[0034]然后,目标PE112b可将读取请求发送到共享存储器120。
[0035]共享存储器120可将由PEl 12a存储的数据发送到目标PE112b。
[0036]所述方法可易于编程并便于多任务处理。然而,会频繁出现从处理元件112a到共享存储器120的长路径(在图1B中被标记为“路径(共享存储器)”)。此外,使用的共享存储器120还可能具有大的大小和低运行速度。另外,可存在诸如大功耗和低任务执行速度的缺点。
[0037]图2A和图2B是示出多核处理器的可通过发送消息来彼此通信的处理元件112a和112b的示图。
[0038]参照图2A和图2B,处理元件(PE)112a和112b可使用布置在每个处理元件中或每个处理元件附近的片上存储器(SPM)来彼此通信。因此,源PE112a可直接将数据发送到目标PE112b,而不必将数据写入共享存储器120 (多核处理器的所有处理元件通常使用该方式)。在此情况下,可通过最短的路径(在图2B中示出为“路径(SPM)”)将数据从源PE112a传输到目标PEl 12b,因此与图1B中示出的路由到存储器120并从存储器120路由出的路径(“路径(共享存储器)”)相比,可减少传输时间。另外,通常SPM可具有与共享存储器相比相对小的容量。因此,使用SPM的数据传输(被称为“消息传递方法”)可具有低功耗的优点。
[0039]然而,由于SPM的容量小且有限,可能无法使用消息传递方法发送所有消息。
[0040]从消息传递方法的应用所获得的益处可根据各种因素(诸如,两个计算机之间的距离)而变化。因此,在映射和/或调度处理期间,在基于共享存储器的通信方案和基于消息传递的通信方案之间选择特定的通信方案可能是适当的。
[0041]图3是示出根据示例性实施例的映射任务和确定通信方案的方法的流程图。
[0042]在任务调度期间,将任务分配给处理元件,并确定每个任务在源PE和目标PE之间传输的特定通信方案。
[0043]图3中示出的方法可基于作为概率算法的模拟退火(SA)算法。
[0044]SA算法的基本过程如下所示:
[0045]创建初始解决方案。
[0046]通过随机改变初始解决方案来获得新解决方案。
[0047]如果新解决方案比初始解决方案好,则用新解决方案替换初始解决方案,如果新解决方案没有初始决绝方案好,则根据预定概率r Cr大于O并且小于I)用新解决方案替换初始解决方案。
[0048]通过(I)到(3)的过程,SA算法可取得比局部搜索算法更好的解决方案。
[0049]图3中示出的方法可包括两个步骤:初始解决方案的产生(S100)和初始解决方案的改变(SI 10)。
[0050]在S100,创建初始解决方案。每个解决方案可包括相对于每个PE的任务映射状态以及用于在源PE和目标PE之间传输每个任务的特定通信方案。
[0051]然后,通过改变任务映射状态和用于每个任务的通信方案来创建新解决方案。
[0052]图4是详细示出根据示例性实施例的类似于图3的操作SllO的改变初始解决方案的操作步骤的示图。
[0053]操作SllO可包括任务移动操作S112和通信方案改变操作S114。
[0054]在S112,相对于任务在初始解决方案中被映射到特定PE,确定所述任务是否被移动到另一 PE。例如,在S1120可以以概率α将任务从特定PE移动到另一 PE。这里,α是O和I之间的值。在S1130不移动任务的概率为(l-α )。
[0055]在S1121,可以以概率β将移动到另一 PE的任务切换为不同PE的另一任务。这里,β是O和I之间的值。[0056]图5是示出根据示例性实施例的以概率β在处理元件之间切换任务的情况的示图。
[0057]参照图5,任务O被映射到处理元件ΡΕ0,任务I被映射到处理元件PEl。在SI 121,以概率β将映射到PEO的任务O移动到PEl并将映射到PEl的任务I移动到PEO。
[0058]返回参照图4,可以以概率(l-β )将映射到PEO的任务移动到另一个PE (ΡΕ2)。
[0059]图6是示出以概率(1- β )将任务从一个处理元件移动到另一处理元件的情况的示图。
[0060]在S1122,映射到PEO的任务O被移动到处理元件ΡΕ2。
[0061]参照图4,在SI 14,确定用于特定任务的源PE和目标PE的通信方案是否被改变。
[0062]例如,在S1110、S1142和S1144中,可以以概率Y将当前通信方案改变成另一通信方案。如果当前通信方案基于消息传递,则当前通信方案改变为使用共享存储器的通信方案的概率为Y。这里,Y是O和I之间的值。
[0063]在S114,在S1141、S1143和S1145中可以以概率(1-Y )不将特定通信方案改变成 另一方案。
[0064]另外,在操作SllO之后,可能需要额外地对改变后的解决方案执行优化。
[0065]当考虑到用于基于消息传递的通信方案的SPM的大小受限的事实时,尝试实现优化的解决方案的PE可能需要在不超过SPM的大小的情况下最大限度地利用SPM。
[0066]另外,从基于消息传递的通信方案而不是基于共享存储器的通信方案的使用获得的增益可根据各种因素(诸如PE之间的通信距离、通信数据流量或SPM的使用率等)而不同。因此,可适当地将基于消息传递的通信方案优选地应用于任务,该任务使从基于消息传递的通信方案获得的优点比从基于共享存储器的通信方案获得的优点更多。
[0067]在源PE和目标PE之间针对任务t的增益G (t)可表示为以下的等式(I)。
[0068]G (t) = (L+A) /T(I)
[0069]其中,L表示源PE和目标PE之间的通信距离,A表示源PE和目标PE之间的数据流量,并且T是SPM使用的总和。
[0070]启发式,更具体地讲,贪婪算法启发式可被用于优化处理。跟随初始解决方案的改变(SllO)的优化处理可被视为启发式优化。
[0071]图7是示出根据示例性实施例的优化处理的流程图。
[0072]参照图7,优化处理包括违例(violation)消除(S200)阶段和利用率提高(S210)阶段。
[0073]在操作S200,可从在步骤SllO获得的改变后的初始解决方案中包括的用于每个任务的映射和/或通信方案中消除违例。
[0074]在操作SllO (初始解决方案的改变)之后获得的方案中包括的用于每个任务的映射和通信方案可能会与用大小超过SPM的大小来发送数据的PE相关联(以下,所述PE被称为“违例” PE)。所述PE可包括源PE和目标PE。在操作S200,可消除违例PE的违例。
[0075]例如,可以以大小超过SPM的数据大小的顺序来排列违例PE。然后,指定给被映射到排列的违例处理元件的每个任务的基于消息传递的通信方案被改变成基于共享存储器的通信方案,直到违例被克服为止(也就是说,直到每个违例PE的数据大小不超过SPM的大小为止)。[0076]如果存在很多通信方案需要被改变的任务,则可从具有通过等式I获得的最低增益的任务开始顺序地改变通信方案。
[0077]—旦完成被分配给从具有最小超过量的PE开始的违例PE的所有任务的通信方案的改变,就可获得有效的解决方案。
[0078]在操作S210,执行用于进一步利用每个PE中的SPM的未用空间的处理。
[0079]在违例消除操作之后,一些PE可具有未用空间可能非常大的SPM。这可能是因为初始解决方案或者在违例消除处理中的需要大的存储器容量的任务的通信方案被改变为基于共享存储器的通信方案。
[0080]在操作S210,可以以SPM的未用空间的量的顺序来排列包括具有未用空间的SPM的PE。然后,将针对被分配给排列的PE的每个任务指定的基于共享存储器的通信方案改变成基于消息传递的通信方案。
[0081]在存在通信方案将被改变的多个任务的情况下,可适当优选地改变具有较高增益的任务的通信方案。通过等式I获得针对每个任务的增益。
[0082]一旦完成针对具有容量可用的SPM的所有PE的每个任务的通信方案(其中,从具有未用空间最大的SPM的PE开始),SPM的利用程度就可比之前提高更多。因此,解决方案被进一步优化。
[0083]调度处理需要在近似优化操作之后。
[0084]当映射涉及如何确定被分配有任务的PE时,调度是用于确定执行每个被分配的任务的时序的处理。
[0085]这里描述的示例建议与具有反向相关性的循环应用以及非循环应用兼容的调度算法。为便于描述,将此算法称为“修改的模数算法”。
[0086]模数算法是一种基于优先级的调度算法。模数算法对表示迭代循环之间的时间间隔的启动间隔(II)进行估计,然后尝试在估计的时间间隔内调度所有任务。如果调度任务的尝试失败,则逐步提高迭代间隔直到找到最佳的II为止。
[0087]图8是示出根据示例性实施例的使用模数算法的指令调度操作的流程图。
[0088]模数算法是适合于调度指令的算法。例如,在操作S300,在启动间隔(II)内分配将被迭代执行的例程的迭代间隔。在操作S310,可应用条件使得调度在预定时间段t内被执行。在S320,利用启动间隔和时间段的条件重复尝试所述调度。当调度尝试失败时,通过在步骤S350使时间段增加I (或单位时间)来实现指令调度尝试。如果在步骤S340确定不能在指令的迭代循环之间的预定启动间隔(II)内调度指令,则在步骤S360可通过使启动间隔增加I (或“单位时间”)来将启动间隔重新设置成11+1。在此情况下,调度尝试从预定时间段(t)开始。
[0089]虽然此方法可适合于调度指令,但是因为通过使用此方法来调度任务会耗费过多的时间,所以此方法会不利于任务调度。因此,不会把将被用于指令调度的算法用在任务调度中。
[0090]图9是示出根据示例性实施例的使用修改的模数算法的任务调度操作的流程图。
[0091]具体地,在操作S400,将迭代间隔分配在启动间隔内,以便于使用迭代执行的例程来调度任务。在此情况下,在操作S410,应用条件使得调度在预定时间段(t)内被执行。在操作S420,在迭代间隔和预定时间段的条件下,重复进行调度尝试。当调度尝试失败时,在操作S450重新尝试调度。
[0092]在由于特定任务(任务(a))与另一任务(任务(b))重叠而调度失败的事件中,在操作S432,计算任务重叠的时间段的长度tOTOTlap。修改的模数算法在这方面与一般的模数算法不同。在操作S450,设置新的时间段(t+t_lap)并在新的时间段内再次尝试调度。因此,修改的模数算法与使时间段增加单位时间(例如,“I”)并在新的时间段内重新尝试调度的一般的模数算法不同。
[0093]如果在操作S440确定不能在作为迭代循环之间的预定的启动间隔(II)内执行调度,则在操作S460可通过增加II来重新设置迭代间隔。在此情况下,从预定时间段(t)开始,可再次进行调度尝试。 [0094]修改的模数算法和一般的模数算法之间的另一不同在于:在操作S442,修改的模数算法计算基于刚好在迭代间隔的重新设置之前的启动间隔(II)获得的重叠时间段的长度tOvCTiap的最小值(即,min (tOTOTlap))。在操作S460,尝试利用被设置成II+min (tOTOTlap)的II来调度任务。也就是说,修改的模数算法与使启动间隔(II)增加单位时间(例如,“I”)并用新的启动间隔(II)再次进行调度尝试的一般的模数算法不同。
[0095]与当使用一般的模数算法时相比,当使用修改的模数算法时可显著地减少任务调度的执行时间。这是因为:如果进行相同次数的调度的重新尝试,则由于tOTOTlal^Pmin(tOTCTlap)均比单位时间长,所以修改的模数算法可用比通过一般的模数算法设置的时间段长的时间段来进行调度尝试。
[0096]另外,与一般的模数算法的调度结果相比,修改的模数算法的调度结果基本上不降低。
[0097]图10是示出根据示例性实施例的编译将在可重构处理器上执行的程序的方法的流程图。
[0098]如图10所示,编译方法包括包含产生初始解决方案(S500)、执行近似优化(S510)和调度任务(S520)的操作。
[0099]在操作S500,如上所述产生初始解决方案,使得将多个任务映射到使用概率算法的多个处理元件,并指定将在源处理元件和目标处理元件之间传输的每个任务的特定通信方案。例如,可将模拟退火(SA)算法用作概率算法。可在基于共享存储器的通信方案和利用基于消息传递的通信方案的片上存储器(SPM)之间选择特定通信方案。可基于每个方案的概率执行根据初始解决方案被映射到处理元件的每个任务的重新分配和/或针对每个任务指定的通信方案的改变。
[0100]在操作S510,对包括在初始解决方案中的映射和通信方案进行近似优化。近似优化可使用如上所述的启发式。
[0101]例如,在操作S510,可执行优化处理来消除违例,使得与被映射到特定处理元件的任务相关的数据的大小的总和不超过SPM的容量。
[0102]另外,将指定给被映射到包含具有未用空间的SPM的处理元件的基于共享存储器的通信方案改变成基于消息传递的通信方案,以提高SPM的利用程度。
[0103]在操作S520,执行多个任务的调度。
[0104]可通过重复执行以下操作来执行任务调度:在预定时间段内尝试调度任务;当调度尝试失败时,计算任务重叠的时间段的长度;然后在通过使预定时间段和计算的重叠时间段相加而获得的新的时间段内重新尝试调度任务。
[0105]图11是示出根据示例性实施例的编译将在可重构处理器上执行的程序的方法的流程图。
[0106]操作S600、S610和S620基本上分别与图10的操作S500、S510和S520相似。
[0107]图11的编译方法还包括在调度操作S620之后的调度结果的评估(S630)。基于来自操作S630的评估结果,在操作S640产生比在操作S600获得的初始解决方案好的新解决方案,并且对新解决方案执行近似优化操作S610和下面的操作。
[0108]图12是示出根据示例性实施例的由可重构处理器执行的任务映射方法的流程图。
[0109]参照图12,任务映射方法包括重置任务的操作(S700)和改变通信方案的操作(S710)。
[0110]在操作S700,以范围在O和I之间的第一概率将被映射到多核处理器的多个处理元件之一的任务移动到另一处理元件。
[0111]可选地,可以以范围在O和I之间的第二概率,将以第一概率被移动到所述另一处理元件的任务切换为被映射到不同处理元件的任务。
[0112]在操作S710,以范围在O和I之间的第三概率改变针对将在源PE和目标PE之间传输的每个任务的通信方案。
[0113]通过以上重新分配任务以及改变通信方案的操作,可实现更合适的映射结果。
[0114]图13是示出根据另一示例性实施例的由可重构处理器执行的任务调度方法的流程图。
[0115]参照图13,任务调度方法包括尝试调度任务的操作(S800)、计算重叠时间段的长度的操作(S810)、计算迭代间隔的操作(S820)和重新尝试调度的操作(S830)。
[0116]在操作S800,尝试在第一时间段内调度将被执行的所有任务。
[0117]如果任务调度由于重叠的任务而失败,则计算任务重叠的时间段的长度(S810)。然后,通过将第一时间段和计算的重叠时间段的长度相加来获得第二时间段(820),并进行用于利用第二时间段来调度任务的新的尝试(S830)。
[0118]另外,可将图13的任务调度方法应用到被迭代执行的循环例程。因此,如果任务的至少一部分在第一迭代间隔被迭代执行,则可获得重叠时间段的最小值,并且在操作820通过使当前迭代间隔和获得的最小值相加来设置新的迭代间隔。然后,在操作S830,在第二迭代间隔和第二时间段的条件下重复进行调度尝试。
[0119]可将当前实施例实现为计算机可读记录介质中的计算机可读代码。组成计算机程序的代码和代码段可由本领域的熟练的计算机程序员容易地推断出。计算机可读记录介质包括存储计算机可读数据的所有类型的记录介质。计算机可读记录介质的示例包括ROM、RAM、CD-ROM、磁带、软盘和光学数据存储器。另外,可以以诸如互联网传输的载波的形式来实现所述记录介质。另外,计算机可读记录介质可被分布到互联网上的计算系统,其中,计算机可读代码可以以分布式方式被存储和执行。
[0120]以上已经描述了多个示例。然而,将理解可进行各种修改。例如,如果描述的技术按不同顺序被执行和/或如果描述的系统、架构、装置或电路中的组件按不同方式被组合和/或用其它组件或其等同物来替换或补充,则可实现适当的结果。因此,其它实现在权利要求的范围内。
【权利要求】
1.一种编译将在多核处理器上执行的程序的方法,所述方法包括: 通过将任务映射到源处理元件PE和目标PE并选择用于将所述任务从源PE发送到目标PE的通信方案来产生初始解决方案; 对包括在初始解决方案中的映射和通信方案进行近似优化; 调度所述任务, 其中,在编译处理中指定通信方案。
2.如权利要求1所述的方法,其中,使用概率算法来产生初始解决方案。
3.如权利要求2所述的方法,其中,所述概率算法是模拟退火算法。
4.如权利要求1所述的方法,其中,产生初始解决方案的步骤包括: 在基于共享存储器的第一通信方案和使用包括在源PE和目标PE中的每个中的片上存储器的第二通信方案之间选择通信方案。
5.如权利要求4所述的方法,其中,对映射和通信方案进行近似优化的步骤包括: 重新分配被映射到源PE和目标PE的任务。
6.如权利要求5所述的方法,其中,重新分配任务的步骤包括: 以O和I之间的概率将已经被映射到源PE和目标PE的任务重新映射到另一 PE。
7.如权利要求6所述的方法,其中,重新映射任务的步骤包括: 通过以O和I之间的第二概率将第二任务映射到源PE和目标PE,来将已经被重新映射到所述另一 PE的任务替换为第二任务。
8.如权利要求6所述的方法,其中,重新映射任务的步骤包括: 以O和I之间的第三概率将针对任务的传输指定的通信方案改变成第一通信方案或第二通信方案。
9.如权利要求4所述的方法,其中,使用贪婪算法启发式来对包括在初始解决方案中的映射和通信方案执行近似优化。
10.如权利要求4所述的方法,其中,对包括在初始解决方案中的映射和通信方案进行近似优化的步骤包括: 消除违例,使得与被映射到源PE和目标PE的任务相关联的数据的大小不超过片上存储器的容量。
11.如权利要求10所述的方法,其中,消除违例的步骤包括: 将针对被映射到源PE和目标PE的任务指定的第二通信方案改变成第一通信方案。
12.如权利要求11所述的方法,其中,执行违例的消除直到违例针对源PE和目标PE被消除为止。
13.如权利要求12所述的方法,其中,从在源PE和目标PE中的具有超过相关联的片上存储器的数据的最大超过量的处理元件开始,顺序地对处理元件执行违例的消除。
14.如权利要求4所述的方法,其中,对映射和通信方案进行近似优化的步骤包括: 提高对具有未用空间的片上存储器的利用程度。
15.如权利要求14所述的方法,其中,提高利用程度的步骤包括: 将任务的第一通信方案改变成第二通信方案。
16.如权利要求1所述的方法,其中,调度任务的步骤包括: 尝试在第一时间段内调度任务;响应于调度尝试由于所述任务与另一任务重叠而失败,计算所述任务与所述另一任务重叠的时间的长度; 在第二时间段内重新尝试调度所述任务和所述另一任务,所述第二时间段等于第一时间段与计算的所述任务和所述另一任务重叠的时间的长度的和。
17.如权利要求16所述的方法,其中,调度所述任务和所述另一任务的步骤包括: 响应于任务的一部分在第一迭代间隔被重复执行,计算任务重叠的时间的长度的最小值; 在第二迭代间隔重新尝试调度被重复执行的任务,所述第二迭代间隔等于第一迭代间隔与任务重叠的时间的长度的最小值的和。
18.如权利要求1所述的方法,还包括: 评估任务调度后的调度结果。
19.如权利要求18所述的方法,还包括: 使用调度结果的评估来重新产生初始解决方案。
20.如权利要求1所述的方法, 其中,第二任务被相反地映射到源PE和目标PE,使得第二任务被切换为最初映射的任务, 其中,第二通信方案被选择用于将第二任务从目标PE发送到源PE。
21.—种在多核处理器中映射任务的方法,所述方法包括: 将任务映射到多核处理器中的多个处理元件中的第一处理元件; 以O和I之间的第一概率将所述任务从第一处理元件移动到第二处理元件; 以O和I之间的第二概率将已经以第一概率被移动到第二处理元件的任务替换为被映射到第三处理元件的另一任务。
22.如权利要求21所述的方法, 其中,通过来自第一通信方案和第二通信方案中的至少一个的通信方案指定任务, 其中,第一通信方案使用共享存储器,第二通信方案使用第一处理元件的片上存储器、第二处理元件的片上存储器和第三处理元件的片上存储器中的至少一个。
23.如权利要求22所述的方法,还包括: 以O和I之间的第三概率将针对任务指定的选择的通信方案改变成先前没有被选择的第一通信方案或第二通信方案。
24.如权利要求23所述的方法,还包括: 当选择了第二通信方案时,使得与被映射到特定处理元件的任务相关的数据的总和不超过所述特定处理元件的片上存储器的容量,将任务的第二通信方案改变成第一通信方案。
25.如权利要求23所述的方法,还包括: 当选择了第一通信方案时,响应于确定任务被映射到包含具有未用空间的片上存储器的处理元件,将任务的第一通信方案改变成第二通信方案。
26.—种在多核处理器中调度任务的方法,所述方法包括: 尝试在第一时间段内调度两个或更多个任务,其中,所述两个或更多个任务将在多核处理器的两个或更多个处理元件上执行; 响应于调度尝试由于所述两个或更多个任务中的一个任务与所述两个或更多个任务中的另一任务重叠而失败,计算所述两个或更多个任务彼此重叠的时间的长度; 在第二时间段内重新尝试调度所述两个或更多个任务,所述第二时间段等于第一时间段与计算的任务重叠的时间的长度的和。
27.如权利要求26所述的方法,还包括: 响应于任务的一部分在第一迭代间隔被重复执行,计算任务重叠的时间的长度的最小值; 在第二迭代间隔重新尝试调度被重复执行的任务,所述第二迭代间隔等于第一迭代间隔与任务重叠的时间的长度的最小值的和。
28.一种在多核可重构处理器上映射和调度任务的方法,所述方法包括: 产生用于任务的初始解决方案,所述初始解决方案包括映射、通信方案和调度。 通过基于第一概率改变映射并根据第二概率改变通信方案来改变用于所述任务的初始解决方案; 响应于检测到所述任务与另一任务重叠,根据计算的重叠值来调度所述任务。
29.如权利要求28所述的方法,其中,产生用于所述任务的初始解决方案的步骤还包括: 将所述任务映射到源处`理元件PE和目标PE ; 选择共享存储器通信方案和片上存储器通信方案中的至少一个,以将任务从源PE发送到目标PE; 调度用于将任务从源PE发送到目标PE的时序。
【文档编号】G06F9/45GK103729228SQ201310473475
【公开日】2014年4月16日 申请日期:2013年10月11日 优先权日:2012年10月11日
【发明者】李振浩, 郑武坰, 崔起荣, 赵渊坤, 柳秀晶 申请人:三星电子株式会社, 首尔大学校产学协力团