1.一種用于執(zhí)行基于圖的程序規(guī)范的方法,所述方法包括:
存儲基于圖的程序規(guī)范,所述基于圖的程序規(guī)范包括對應(yīng)于任務(wù)的多個組件,所述多個組件中的至少一些組件每個具有以下中的至少一個:
(1)至少一個輸入端口,用于接收待由對應(yīng)任務(wù)處理的數(shù)據(jù)元素的集合,或者
(2)至少一個集合型輸出端口,用于提供數(shù)據(jù)元素的集合由與鏈接到集合型輸出端口的組件相對應(yīng)的任務(wù)處理;以及
執(zhí)行由所述基于圖的程序規(guī)范指定的程序,所述執(zhí)行包括:
經(jīng)由連接到所述多個組件中的第一組件的集合型輸出端口以及所述多個組件中的第二組件的輸入端口的鏈路,以第一順序?qū)?shù)據(jù)元素的第一集合中的兩個或更多數(shù)據(jù)元素接收到第一存儲區(qū)中,以及
調(diào)用對應(yīng)于所述第二組件的任務(wù)的多個實(shí)例以處理數(shù)據(jù)元素的所述第一集合中的數(shù)據(jù)元素,包括:以第二順序從所述第一存儲區(qū)取出數(shù)據(jù)元素,直到任何特定實(shí)例完成處理一個或多個數(shù)據(jù)元素后不阻止調(diào)用任何實(shí)例,
其中所述第一順序不同于所述第二順序。
2.根據(jù)權(quán)利要求1所述的方法,其中調(diào)用對應(yīng)于所述第二組件的任務(wù)的一個或多個實(shí)例包括調(diào)用對應(yīng)于所述第二組件的任務(wù)的多個實(shí)例。
3.根據(jù)權(quán)利要求2所述的方法,其中調(diào)用對應(yīng)于所述第二組件的任務(wù)的多個實(shí)例包括調(diào)用對應(yīng)于所述第二組件的任務(wù)的多個順序執(zhí)行的實(shí)例。
4.根據(jù)權(quán)利要求2所述的方法,其中調(diào)用對應(yīng)于所述第二組件的任務(wù)的多個實(shí)例包括調(diào)用對應(yīng)于所述第二組件的任務(wù)的多個并發(fā)執(zhí)行的實(shí)例。
5.根據(jù)權(quán)利要求4所述的方法,其中對應(yīng)于所述第二組件的任務(wù)的多個實(shí)例中的任務(wù)的每個實(shí)例對應(yīng)于數(shù)據(jù)元素的所述第一集合的不同的、非重疊的子集。
6.根據(jù)權(quán)利要求5所述的方法,其中數(shù)據(jù)的所述第一集合的每個不同的、非重疊的子集包括單個數(shù)據(jù)元素。
7.根據(jù)權(quán)利要求1所述的方法,其中所述第二組件的輸入端口是集合型輸入端口,用于接收待由對應(yīng)于所述第二組件的任務(wù)處理的數(shù)據(jù)元素的集合,并且調(diào)用對應(yīng)于所述第二組件的任務(wù)的一個或多個實(shí)例包括調(diào)用對應(yīng)于所述第二組件的任務(wù)的單個實(shí)例。
8.根據(jù)權(quán)利要求7所述的方法,其中對應(yīng)于所述第二組件的任務(wù)的單個實(shí)例迭代地處理數(shù)據(jù)元素的所述第一集合中的數(shù)據(jù)元素。
9.根據(jù)前述權(quán)利要求中任一項所述的方法,其中所述執(zhí)行還包括生成包括第一數(shù)量的數(shù)據(jù)元素的輸出,所述第一數(shù)量與所述第一集合中數(shù)據(jù)元素的第二數(shù)量相同。
10.根據(jù)權(quán)利要求9所述的方法,其中所述執(zhí)行還包括以第三順序?qū)⑺鲚敵鎏峁┙o第二存儲區(qū),所述第三順序獨(dú)立于數(shù)據(jù)元素的所述第一集合的所述第一順序。
11.根據(jù)權(quán)利要求1至8中任一項所述的方法,其中所述執(zhí)行還包括生成包括第一數(shù)量的數(shù)據(jù)元素的輸出,其中所述第一數(shù)量與所述第一集合中數(shù)據(jù)元素的第二數(shù)量不同。
12.根據(jù)前述權(quán)利要求中任一項所述的方法,其中所述多個組件中的至少一些組件每個具有:
至少一個標(biāo)量型輸入端口,用于接收待由對應(yīng)任務(wù)處理的單個數(shù)據(jù)元素,以及
至少一個標(biāo)量型輸出端口,用于提供單個數(shù)據(jù)元素由與鏈接到標(biāo)量型輸出端口的組件相對應(yīng)的任務(wù)處理;以及
執(zhí)行由所述基于圖的程序規(guī)范指定的程序還包括:
經(jīng)由將標(biāo)量型輸出端口連接到標(biāo)量型輸入端口的鏈路,在所述多個組件中的第三組件的標(biāo)量型輸入端口處,從所述多個組件中的第四組件的標(biāo)量型輸出端口接收單個數(shù)據(jù)元素;以及
響應(yīng)于在標(biāo)量型輸入端口處接收到單個數(shù)據(jù)元素,調(diào)用對應(yīng)于所述第三組件的任務(wù)的實(shí)例。
13.根據(jù)權(quán)利要求12所述的方法,其中執(zhí)行由所述基于圖的程序規(guī)范指定的程序還包括:直到在標(biāo)量型輸入端口處接收到單個數(shù)據(jù)元素后,阻止調(diào)用對應(yīng)于所述第三組件的任務(wù)。
14.根據(jù)權(quán)利要求12或13所述的方法,其中執(zhí)行由所述基于圖的程序規(guī)范指定的程序還包括:直到在標(biāo)量型輸入端口處接收到單個數(shù)據(jù)元素后,阻止直接地或間接地調(diào)用與依賴于所述第三組件的組件相對應(yīng)的任務(wù)。
15.根據(jù)前述權(quán)利要求中任一項所述的方法,還包括確定連接到所述第一組件的集合型輸出端口和所述第二組件的輸入端口的鏈路的存在,此鏈路的存在標(biāo)志著可以重新排序所述第一集合內(nèi)的數(shù)據(jù)元素。
16.一種以非暫時形式存儲在計算機(jī)可讀介質(zhì)上的軟件,用于執(zhí)行基于圖的程序規(guī)范,所述軟件包括用于使得計算系統(tǒng)執(zhí)行以下操作的指令:
存儲基于圖的程序規(guī)范,所述基于圖的程序規(guī)范包括對應(yīng)于任務(wù)的多個組件,所述多個組件中的至少一些組件每個具有以下中的至少一個:
(1)至少一個輸入端口,用于接收待由對應(yīng)任務(wù)處理的數(shù)據(jù)元素的集合,或者
(2)至少一個集合輸出端口,用于提供數(shù)據(jù)元素的集合由與鏈接到集合輸出端口的組件相對應(yīng)的任務(wù)處理;以及
執(zhí)行由所述基于圖的程序規(guī)范指定的程序,所述執(zhí)行包括:
經(jīng)由連接到所述多個組件中的第一組件的集合輸出端口以及所述多個組件中的第二組件的輸入端口的鏈路,以第一順序?qū)?shù)據(jù)元素的第一集合中的兩個或更多數(shù)據(jù)元素接收到第一存儲區(qū)中,以及
調(diào)用對應(yīng)于所述第二組件的任務(wù)的多個實(shí)例以處理數(shù)據(jù)元素的所述第一集合中的數(shù)據(jù)元素,包括:以第二順序從所述第一存儲區(qū)取出數(shù)據(jù)元素,直到任何特定實(shí)例完成處理一個或多個數(shù)據(jù)元素后不阻止調(diào)用任何實(shí)例,
其中所述第一順序不同于所述第二順序。
17.一種計算系統(tǒng),用于執(zhí)行基于圖的程序規(guī)范,所述計算系統(tǒng)包括:
數(shù)據(jù)存儲系統(tǒng),用于存儲基于圖的程序規(guī)范,所述基于圖的程序規(guī)范包括對應(yīng)于任務(wù)的多個組件,所述多個組件中的至少一些組件每個具有以下中的至少一個:
(1)至少一個輸入端口,用于接收待由對應(yīng)任務(wù)處理的數(shù)據(jù)元素的集合,或者
(2)至少一個集合輸出端口,用于提供數(shù)據(jù)元素的集合由與鏈接到集合輸出端口的組件相對應(yīng)的任務(wù)處理;以及
至少一個處理器,被配置為執(zhí)行由所述基于圖的程序規(guī)范指定的程序,所述執(zhí)行包括:
經(jīng)由連接到所述多個組件中的第一組件的集合輸出端口以及所述多個組件中的第二組件的輸入端口的鏈路,以第一順序?qū)?shù)據(jù)元素的第一集合中的兩個或更多數(shù)據(jù)元素接收到第一存儲區(qū)中,以及
調(diào)用對應(yīng)于所述第二組件的任務(wù)的多個實(shí)例以處理數(shù)據(jù)元素的所述第一集合中的數(shù)據(jù)元素,包括:以第二順序從所述第一存儲區(qū)取出數(shù)據(jù)元素,直到任何特定實(shí)例完成處理一個或多個數(shù)據(jù)元素后不阻止調(diào)用任何實(shí)例,
其中所述第一順序不同于所述第二順序。