@@ -87,11 +87,13 @@ func TestFeasibleNodes(t *testing.T) {
8787 {
8888 name : "no nodes" ,
8989 job : & podgroup_info.PodGroupInfo {
90- PodInfos : pod_info.PodsMap {
91- "pod1" : & pod_info.PodInfo {
92- ResourceRequestType : pod_info .RequestTypeRegular ,
93- ResReq : resource_info .NewResourceRequirementsWithGpus (1 ),
94- },
90+ SubGroups : map [string ]* podgroup_info.SubGroupInfo {
91+ podgroup_info .DefaultSubGroup : podgroup_info .NewSubGroupInfo (podgroup_info .DefaultSubGroup , 1 ).WithPodInfos (pod_info.PodsMap {
92+ "pod1" : & pod_info.PodInfo {
93+ ResourceRequestType : pod_info .RequestTypeRegular ,
94+ ResReq : resource_info .NewResourceRequirementsWithGpus (1 ),
95+ },
96+ }),
9597 },
9698 },
9799 nodes : []* node_info.NodeInfo {},
@@ -100,11 +102,13 @@ func TestFeasibleNodes(t *testing.T) {
100102 {
101103 name : "CPU only job" ,
102104 job : & podgroup_info.PodGroupInfo {
103- PodInfos : pod_info.PodsMap {
104- "pod1" : & pod_info.PodInfo {
105- ResourceRequestType : pod_info .RequestTypeRegular ,
106- ResReq : resource_info .NewResourceRequirements (0 , 1000 , 0 ),
107- },
105+ SubGroups : map [string ]* podgroup_info.SubGroupInfo {
106+ podgroup_info .DefaultSubGroup : podgroup_info .NewSubGroupInfo (podgroup_info .DefaultSubGroup , 1 ).WithPodInfos (pod_info.PodsMap {
107+ "pod1" : & pod_info.PodInfo {
108+ ResourceRequestType : pod_info .RequestTypeRegular ,
109+ ResReq : resource_info .NewResourceRequirements (0 , 1000 , 0 ),
110+ },
111+ }),
108112 },
109113 },
110114 nodes : allNodes ,
@@ -113,13 +117,15 @@ func TestFeasibleNodes(t *testing.T) {
113117 {
114118 name : "whole GPU job" ,
115119 job : & podgroup_info.PodGroupInfo {
116- PodInfos : pod_info.PodsMap {
117- "pod1" : & pod_info.PodInfo {
118- ResourceRequestType : pod_info .RequestTypeRegular ,
119- ResReq : & resource_info.ResourceRequirements {
120- GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithGpus (2 , 0 ),
120+ SubGroups : map [string ]* podgroup_info.SubGroupInfo {
121+ podgroup_info .DefaultSubGroup : podgroup_info .NewSubGroupInfo (podgroup_info .DefaultSubGroup , 1 ).WithPodInfos (pod_info.PodsMap {
122+ "pod1" : & pod_info.PodInfo {
123+ ResourceRequestType : pod_info .RequestTypeRegular ,
124+ ResReq : & resource_info.ResourceRequirements {
125+ GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithGpus (2 , 0 ),
126+ },
121127 },
122- },
128+ }) ,
123129 },
124130 },
125131 nodes : allNodes ,
@@ -128,18 +134,20 @@ func TestFeasibleNodes(t *testing.T) {
128134 {
129135 name : "distributed whole GPU job" ,
130136 job : & podgroup_info.PodGroupInfo {
131- PodInfos : pod_info.PodsMap {
132- "pod1" : & pod_info.PodInfo {
133- ResourceRequestType : pod_info .RequestTypeRegular ,
134- ResReq : & resource_info.ResourceRequirements {
135- GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithGpus (2 , 0 ),
137+ SubGroups : map [string ]* podgroup_info.SubGroupInfo {
138+ podgroup_info .DefaultSubGroup : podgroup_info .NewSubGroupInfo (podgroup_info .DefaultSubGroup , 2 ).WithPodInfos (pod_info.PodsMap {
139+ "pod1" : & pod_info.PodInfo {
140+ ResourceRequestType : pod_info .RequestTypeRegular ,
141+ ResReq : & resource_info.ResourceRequirements {
142+ GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithGpus (2 , 0 ),
143+ },
136144 },
137- },
138- "pod2" : & pod_info. PodInfo {
139- ResReq : & resource_info.ResourceRequirements {
140- GpuResourceRequirement : * resource_info . NewGpuResourceRequirementWithGpus ( 2 , 0 ) ,
145+ "pod2" : & pod_info. PodInfo {
146+ ResReq : & resource_info. ResourceRequirements {
147+ GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithGpus ( 2 , 0 ),
148+ } ,
141149 },
142- },
150+ }) ,
143151 },
144152 },
145153 nodes : allNodes ,
@@ -148,16 +156,18 @@ func TestFeasibleNodes(t *testing.T) {
148156 {
149157 name : "Mixed requests (whole GPU and CPU pods)" ,
150158 job : & podgroup_info.PodGroupInfo {
151- PodInfos : pod_info.PodsMap {
152- "pod1" : & pod_info.PodInfo {
153- ResourceRequestType : pod_info .RequestTypeRegular ,
154- ResReq : & resource_info.ResourceRequirements {
155- GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithGpus (2 , 0 ),
159+ SubGroups : map [string ]* podgroup_info.SubGroupInfo {
160+ podgroup_info .DefaultSubGroup : podgroup_info .NewSubGroupInfo (podgroup_info .DefaultSubGroup , 2 ).WithPodInfos (pod_info.PodsMap {
161+ "pod1" : & pod_info.PodInfo {
162+ ResourceRequestType : pod_info .RequestTypeRegular ,
163+ ResReq : & resource_info.ResourceRequirements {
164+ GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithGpus (2 , 0 ),
165+ },
166+ },
167+ "pod2" : & pod_info.PodInfo {
168+ ResReq : resource_info .NewResourceRequirements (0 , 1000 , 2000 ),
156169 },
157- },
158- "pod2" : & pod_info.PodInfo {
159- ResReq : resource_info .NewResourceRequirements (0 , 1000 , 2000 ),
160- },
170+ }),
161171 },
162172 },
163173 nodes : allNodes ,
@@ -166,13 +176,15 @@ func TestFeasibleNodes(t *testing.T) {
166176 {
167177 name : "Fraction GPU job" ,
168178 job : & podgroup_info.PodGroupInfo {
169- PodInfos : pod_info.PodsMap {
170- "pod1" : & pod_info.PodInfo {
171- ResourceRequestType : pod_info .RequestTypeFraction ,
172- ResReq : & resource_info.ResourceRequirements {
173- GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithGpus (0.5 , 0 ),
179+ SubGroups : map [string ]* podgroup_info.SubGroupInfo {
180+ podgroup_info .DefaultSubGroup : podgroup_info .NewSubGroupInfo (podgroup_info .DefaultSubGroup , 1 ).WithPodInfos (pod_info.PodsMap {
181+ "pod1" : & pod_info.PodInfo {
182+ ResourceRequestType : pod_info .RequestTypeFraction ,
183+ ResReq : & resource_info.ResourceRequirements {
184+ GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithGpus (0.5 , 0 ),
185+ },
174186 },
175- },
187+ }) ,
176188 },
177189 },
178190 nodes : allNodes ,
@@ -181,14 +193,16 @@ func TestFeasibleNodes(t *testing.T) {
181193 {
182194 name : "GPU Memory job" ,
183195 job : & podgroup_info.PodGroupInfo {
184- PodInfos : pod_info.PodsMap {
185- "pod1" : & pod_info.PodInfo {
186- ResourceRequestType : pod_info .RequestTypeGpuMemory ,
187- ResReq : & resource_info.ResourceRequirements {
188- GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithGpus (
189- 0 , 500 ),
196+ SubGroups : map [string ]* podgroup_info.SubGroupInfo {
197+ podgroup_info .DefaultSubGroup : podgroup_info .NewSubGroupInfo (podgroup_info .DefaultSubGroup , 1 ).WithPodInfos (pod_info.PodsMap {
198+ "pod1" : & pod_info.PodInfo {
199+ ResourceRequestType : pod_info .RequestTypeGpuMemory ,
200+ ResReq : & resource_info.ResourceRequirements {
201+ GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithGpus (
202+ 0 , 500 ),
203+ },
190204 },
191- },
205+ }) ,
192206 },
193207 },
194208 nodes : allNodes ,
@@ -197,17 +211,19 @@ func TestFeasibleNodes(t *testing.T) {
197211 {
198212 name : "MIG job" ,
199213 job : & podgroup_info.PodGroupInfo {
200- PodInfos : pod_info.PodsMap {
201- "pod1" : & pod_info.PodInfo {
202- ResourceRequestType : pod_info .RequestTypeMigInstance ,
203- ResReq : & resource_info.ResourceRequirements {
204- GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithMig (
205- map [v1.ResourceName ]int64 {
206- "nvidia.com/mig-1g.10gb" : 1 ,
207- },
208- ),
214+ SubGroups : map [string ]* podgroup_info.SubGroupInfo {
215+ podgroup_info .DefaultSubGroup : podgroup_info .NewSubGroupInfo (podgroup_info .DefaultSubGroup , 1 ).WithPodInfos (pod_info.PodsMap {
216+ "pod1" : & pod_info.PodInfo {
217+ ResourceRequestType : pod_info .RequestTypeMigInstance ,
218+ ResReq : & resource_info.ResourceRequirements {
219+ GpuResourceRequirement : * resource_info .NewGpuResourceRequirementWithMig (
220+ map [v1.ResourceName ]int64 {
221+ "nvidia.com/mig-1g.10gb" : 1 ,
222+ },
223+ ),
224+ },
209225 },
210- },
226+ }) ,
211227 },
212228 },
213229 nodes : allNodes ,
0 commit comments