Skip to content

Commit 2903db8

Browse files
committed
Merge remote-tracking branch 'iroy30/add_exception_handling_pdlp'
2 parents 2efc6cd + 439bf38 commit 2903db8

10 files changed

Lines changed: 670 additions & 190 deletions

File tree

cpp/src/pdlp/solve.cu

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1197,12 +1197,6 @@ optimization_problem_solution_t<i_t, f_t> run_concurrent(
11971197

11981198
barrier_thread.join();
11991199

1200-
// TODO: Active Issue: PDLP throws an Exception interminttently.
1201-
if (pdlp_exception) {
1202-
printf("Rethrowing PDLP exception from concurrent mode\n");
1203-
std::rethrow_exception(pdlp_exception);
1204-
}
1205-
12061200
// copy the dual simplex solution to the device
12071201
auto sol_dual_simplex =
12081202
!settings.inside_mip
Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
/* SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
* SPDX-License-Identifier: Apache-2.0
3+
*
4+
* Install selector – NVIDIA green button and improved look and feel */
5+
:root {
6+
--cuopt-nvidia-green: #76b900;
7+
--cuopt-nvidia-green-hover: #6aa000;
8+
--cuopt-nvidia-green-active: #5c8f00;
9+
--cuopt-border: #d0d0d0;
10+
--cuopt-bg-subtle: #f5f5f5;
11+
--cuopt-text: #333;
12+
--cuopt-radius: 6px;
13+
}
14+
15+
.cuopt-install-selector-wrap {
16+
background: var(--cuopt-bg-subtle);
17+
border: 1px solid var(--cuopt-border);
18+
border-radius: var(--cuopt-radius);
19+
padding: 1.25rem 1.5rem;
20+
margin: 1.25em 0;
21+
max-width: 42em;
22+
}
23+
24+
.cuopt-install-selector-wrap.cuopt-install-error {
25+
border-color: #c00;
26+
background-color: #fff5f5;
27+
}
28+
29+
.cuopt-install-selector-wrap.cuopt-install-error code {
30+
font-size: 0.9em;
31+
padding: 0.1em 0.3em;
32+
background: #fff;
33+
border-radius: 3px;
34+
}
35+
36+
.cuopt-install-selector-table {
37+
margin: 0 !important;
38+
border: none !important;
39+
width: 100%;
40+
table-layout: fixed;
41+
}
42+
43+
.cuopt-install-selector-table tr {
44+
border: none;
45+
}
46+
47+
.cuopt-install-selector-table td {
48+
border: none;
49+
padding: 0.4em 0.6em 0.4em 0;
50+
vertical-align: middle;
51+
}
52+
53+
.cuopt-install-selector-table td:first-child {
54+
width: 6em;
55+
white-space: nowrap;
56+
font-weight: 600;
57+
color: var(--cuopt-text);
58+
vertical-align: middle;
59+
padding-right: 1rem;
60+
}
61+
62+
.cuopt-opt-label {
63+
font-weight: 600;
64+
color: var(--cuopt-text);
65+
}
66+
67+
.cuopt-opt-group {
68+
display: flex;
69+
flex-wrap: nowrap;
70+
gap: 0;
71+
align-items: stretch;
72+
min-width: 0;
73+
width: 100%;
74+
}
75+
76+
.cuopt-opt-group .cuopt-opt {
77+
flex: 1 1 0;
78+
min-width: 0;
79+
}
80+
81+
.cuopt-opt {
82+
display: flex;
83+
align-items: center;
84+
justify-content: center;
85+
padding: 0.5em 0.5em;
86+
font-size: 0.9em;
87+
color: var(--cuopt-text);
88+
background-color: #fff;
89+
border: 1px solid var(--cuopt-border);
90+
border-radius: 0;
91+
cursor: pointer;
92+
transition: border-color 0.15s ease, background-color 0.15s ease;
93+
box-sizing: border-box;
94+
text-align: center;
95+
}
96+
97+
.cuopt-opt:first-child {
98+
border-radius: 4px 0 0 4px;
99+
}
100+
101+
.cuopt-opt:not(:first-child) {
102+
margin-left: -1px;
103+
}
104+
105+
.cuopt-opt:last-child {
106+
border-radius: 0 4px 4px 0;
107+
}
108+
109+
.cuopt-opt:hover {
110+
border-color: #999;
111+
background-color: #fafafa;
112+
z-index: 1;
113+
}
114+
115+
/* Hide radio visually; keep for accessibility and click behavior */
116+
.cuopt-opt input {
117+
position: absolute;
118+
width: 1px;
119+
height: 1px;
120+
padding: 0;
121+
margin: -1px;
122+
overflow: hidden;
123+
clip-path: inset(50%);
124+
-webkit-clip-path: inset(50%);
125+
white-space: nowrap;
126+
border: 0;
127+
}
128+
129+
.cuopt-opt:has(input:focus) {
130+
outline: 2px solid var(--cuopt-nvidia-green);
131+
outline-offset: 2px;
132+
z-index: 2;
133+
}
134+
135+
.cuopt-opt:has(input:checked) {
136+
border-color: var(--cuopt-nvidia-green);
137+
background-color: rgba(118, 185, 0, 0.08);
138+
z-index: 1;
139+
}
140+
141+
.cuopt-install-output {
142+
margin-top: 1.25rem;
143+
padding-top: 1rem;
144+
border-top: 1px solid var(--cuopt-border);
145+
}
146+
147+
.cuopt-install-copy-wrap {
148+
text-align: center;
149+
margin-top: 0.75em;
150+
}
151+
152+
#cuopt-copy-btn.cuopt-install-copy-btn {
153+
display: inline-flex;
154+
align-items: center;
155+
gap: 0.35em;
156+
padding: 0.5em 1em;
157+
font-size: 0.9em;
158+
font-weight: 600;
159+
color: #fff !important;
160+
background-color: var(--cuopt-nvidia-green);
161+
border: none;
162+
border-radius: 4px;
163+
cursor: pointer;
164+
transition: background-color 0.15s ease;
165+
}
166+
167+
#cuopt-copy-btn.cuopt-install-copy-btn:hover {
168+
background-color: var(--cuopt-nvidia-green-hover);
169+
}
170+
171+
#cuopt-copy-btn.cuopt-install-copy-btn:active {
172+
background-color: var(--cuopt-nvidia-green-active);
173+
}
174+
175+
#cuopt-copy-btn.cuopt-install-copy-btn:focus {
176+
outline: 2px solid var(--cuopt-nvidia-green);
177+
outline-offset: 2px;
178+
}
179+
180+
#cuopt-cmd-out.cuopt-install-cmd-out {
181+
width: 100%;
182+
min-height: 6.5em;
183+
padding: 0.75em 1em;
184+
font-family: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace;
185+
font-size: 0.85em;
186+
line-height: 1.45;
187+
color: var(--cuopt-text);
188+
background-color: #fff;
189+
border: 1px solid var(--cuopt-border);
190+
border-radius: 4px;
191+
resize: vertical;
192+
box-sizing: border-box;
193+
}
194+
195+
#cuopt-cmd-out.cuopt-install-cmd-out:focus {
196+
outline: 2px solid var(--cuopt-nvidia-green);
197+
outline-offset: 0;
198+
border-color: var(--cuopt-nvidia-green);
199+
}

0 commit comments

Comments
 (0)