Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segfault when run on example (HiGHS 1.7.0, CUDA 12.4) #21

Open
fuglede opened this issue Apr 2, 2024 · 6 comments
Open

Segfault when run on example (HiGHS 1.7.0, CUDA 12.4) #21

fuglede opened this issue Apr 2, 2024 · 6 comments

Comments

@fuglede
Copy link
Contributor

fuglede commented Apr 2, 2024

I can run HiGHS on example/afiro.mps after building from source. I can build plc without errors, but trying to run it on the example file will produce a segmentation fault.

$ highs example/afiro.mps 
[...]
Objective value     : -4.6475314286e+02
HiGHS run time      :          0.00
$ build/bin/plc -v -fname example/afiro.mps 
--------------------------------------------------
reading file...
	example/afiro.mps
--------------------------------------------------
Running HiGHS 1.7.0 (git hash: 13363c9f1): Copyright (c) 2024 HiGHS under MIT licence terms
Minimize
No obj offset
Segmentation fault

If I build with -DBUILD_CUDA=ON, with either of the two proposed cmake configurations, the -h option also gives some errors that suggest that something is off:

$ build/bin/plc -h

free(): invalid pointer
Aborted

If I set -DBUILD_CODA=OFF, the error from -h goes away, but I still get the segfault on the example file.

Build output:
I can run HiGHS on example/afiro.mps after building from source. I can build plc without errors, but trying to run it on the example file will produce a segmentation fault.

$ highs example/afiro.mps 
[...]
Objective value     : -4.6475314286e+02
HiGHS run time      :          0.00
$ build/bin/plc -v -fname example/afiro.mps 
--------------------------------------------------
reading file...
	example/afiro.mps
--------------------------------------------------
Running HiGHS 1.7.0 (git hash: 13363c9f1): Copyright (c) 2024 HiGHS under MIT licence terms
Minimize
No obj offset
Segmentation fault

If I build with -DBUILD_CUDA=ON, with either of the two proposed cmake configurations, the -h option also gives some errors that suggest that something is off:

$ build/bin/plc -h

free(): invalid pointer
Aborted

If I set -DBUILD_CODA=OFF, the error from -h goes away, but I still get the segfault on the example file.

Build output:

~/repos/cuPDLP-C/build$ cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_CUDA=OFF ..
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-----------------------      cuPDLP-C      ------------------------
reset release flags: -O2 -DNDEBUG
--------------------- cuPDLP CPU/GPU CONFIG -----------------------
-- Sets build with CUDA OFF
- CPU version PDLP
- CPU version PDLP
--------------------- cuPDLP  HiGHS  CONFIG -----------------------
Finding HiGHS environment
    - HiGHS Home detected at /usr/local
    - HiGHS Libraries detected at /usr/local/lib/libhighs.so
    - HiGHS include dir at /usr/local/include/highs
- CPU version PDLP
-- Sets build applications OFF
-- Sets build PYTHON OFF
-- Configuring done (0.2s)
-- Generating done (0.0s)
-- Build files have been written to: /home/user/repos/cuPDLP-C/build
~/repos/cuPDLP-C/build$ cmake --build . --verbose
Change Dir: '/home/user/repos/cuPDLP-C/build'

Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile
/usr/bin/cmake -S/home/user/repos/cuPDLP-C -B/home/user/repos/cuPDLP-C/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/user/repos/cuPDLP-C/build/CMakeFiles /home/user/repos/cuPDLP-C/build//CMakeFiles/progress.marks
/usr/bin/gmake  -f CMakeFiles/Makefile2 all
gmake[1]: Entering directory '/home/user/repos/cuPDLP-C/build'
/usr/bin/gmake  -f cupdlp/CMakeFiles/cupdlp.dir/build.make cupdlp/CMakeFiles/cupdlp.dir/depend
gmake[2]: Entering directory '/home/user/repos/cuPDLP-C/build'
cd /home/user/repos/cuPDLP-C/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/user/repos/cuPDLP-C /home/user/repos/cuPDLP-C/cupdlp /home/user/repos/cuPDLP-C/build /home/user/repos/cuPDLP-C/build/cupdlp /home/user/repos/cuPDLP-C/build/cupdlp/CMakeFiles/cupdlp.dir/DependInfo.cmake "--color="
gmake[2]: Leaving directory '/home/user/repos/cuPDLP-C/build'
/usr/bin/gmake  -f cupdlp/CMakeFiles/cupdlp.dir/build.make cupdlp/CMakeFiles/cupdlp.dir/build
gmake[2]: Entering directory '/home/user/repos/cuPDLP-C/build'
[  5%] Building C object cupdlp/CMakeFiles/cupdlp.dir/cupdlp_cs.c.o
cd /home/user/repos/cuPDLP-C/build/cupdlp && /usr/bin/cc -DCUPDLP_CPU -DCUPDLP_DEBUG -Dcupdlp_EXPORTS  -g -std=gnu99 -fPIC -MD -MT cupdlp/CMakeFiles/cupdlp.dir/cupdlp_cs.c.o -MF CMakeFiles/cupdlp.dir/cupdlp_cs.c.o.d -o CMakeFiles/cupdlp.dir/cupdlp_cs.c.o -c /home/user/repos/cuPDLP-C/cupdlp/cupdlp_cs.c
[ 11%] Building C object cupdlp/CMakeFiles/cupdlp.dir/cupdlp_linalg.c.o
cd /home/user/repos/cuPDLP-C/build/cupdlp && /usr/bin/cc -DCUPDLP_CPU -DCUPDLP_DEBUG -Dcupdlp_EXPORTS  -g -std=gnu99 -fPIC -MD -MT cupdlp/CMakeFiles/cupdlp.dir/cupdlp_linalg.c.o -MF CMakeFiles/cupdlp.dir/cupdlp_linalg.c.o.d -o CMakeFiles/cupdlp.dir/cupdlp_linalg.c.o -c /home/user/repos/cuPDLP-C/cupdlp/cupdlp_linalg.c
/home/user/repos/cuPDLP-C/cupdlp/cupdlp_linalg.c: In function ‘cupdlp_dot’:
/home/user/repos/cuPDLP-C/cupdlp/cupdlp_linalg.c:555:17: warning: passing argument 2 of ‘dot’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  555 |   *res = dot(n, x, 1, y, 1);
      |                 ^
/home/user/repos/cuPDLP-C/cupdlp/cupdlp_linalg.c:293:40: note: expected ‘cupdlp_float *’ {aka ‘double *’} but argument is of type ‘const cupdlp_float *’ {aka ‘const double *’}
  293 | double dot(cupdlp_int n, cupdlp_float *x, cupdlp_int incx, cupdlp_float *y,
      |                          ~~~~~~~~~~~~~~^
/home/user/repos/cuPDLP-C/cupdlp/cupdlp_linalg.c:555:23: warning: passing argument 4 of ‘dot’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  555 |   *res = dot(n, x, 1, y, 1);
      |                       ^
/home/user/repos/cuPDLP-C/cupdlp/cupdlp_linalg.c:293:74: note: expected ‘cupdlp_float *’ {aka ‘double *’} but argument is of type ‘const cupdlp_float *’ {aka ‘const double *’}
  293 | double dot(cupdlp_int n, cupdlp_float *x, cupdlp_int incx, cupdlp_float *y,
      |                                                            ~~~~~~~~~~~~~~^
[ 17%] Building C object cupdlp/CMakeFiles/cupdlp.dir/cupdlp_mps.c.o
cd /home/user/repos/cuPDLP-C/build/cupdlp && /usr/bin/cc -DCUPDLP_CPU -DCUPDLP_DEBUG -Dcupdlp_EXPORTS  -g -std=gnu99 -fPIC -MD -MT cupdlp/CMakeFiles/cupdlp.dir/cupdlp_mps.c.o -MF CMakeFiles/cupdlp.dir/cupdlp_mps.c.o.d -o CMakeFiles/cupdlp.dir/cupdlp_mps.c.o -c /home/user/repos/cuPDLP-C/cupdlp/cupdlp_mps.c
[ 23%] Building C object cupdlp/CMakeFiles/cupdlp.dir/cupdlp_proj.c.o
cd /home/user/repos/cuPDLP-C/build/cupdlp && /usr/bin/cc -DCUPDLP_CPU -DCUPDLP_DEBUG -Dcupdlp_EXPORTS  -g -std=gnu99 -fPIC -MD -MT cupdlp/CMakeFiles/cupdlp.dir/cupdlp_proj.c.o -MF CMakeFiles/cupdlp.dir/cupdlp_proj.c.o.d -o CMakeFiles/cupdlp.dir/cupdlp_proj.c.o -c /home/user/repos/cuPDLP-C/cupdlp/cupdlp_proj.c
[ 29%] Building C object cupdlp/CMakeFiles/cupdlp.dir/cupdlp_restart.c.o
cd /home/user/repos/cuPDLP-C/build/cupdlp && /usr/bin/cc -DCUPDLP_CPU -DCUPDLP_DEBUG -Dcupdlp_EXPORTS  -g -std=gnu99 -fPIC -MD -MT cupdlp/CMakeFiles/cupdlp.dir/cupdlp_restart.c.o -MF CMakeFiles/cupdlp.dir/cupdlp_restart.c.o.d -o CMakeFiles/cupdlp.dir/cupdlp_restart.c.o -c /home/user/repos/cuPDLP-C/cupdlp/cupdlp_restart.c
[ 35%] Building C object cupdlp/CMakeFiles/cupdlp.dir/cupdlp_scaling_cuda.c.o
cd /home/user/repos/cuPDLP-C/build/cupdlp && /usr/bin/cc -DCUPDLP_CPU -DCUPDLP_DEBUG -Dcupdlp_EXPORTS  -g -std=gnu99 -fPIC -MD -MT cupdlp/CMakeFiles/cupdlp.dir/cupdlp_scaling_cuda.c.o -MF CMakeFiles/cupdlp.dir/cupdlp_scaling_cuda.c.o.d -o CMakeFiles/cupdlp.dir/cupdlp_scaling_cuda.c.o -c /home/user/repos/cuPDLP-C/cupdlp/cupdlp_scaling_cuda.c
[ 41%] Building C object cupdlp/CMakeFiles/cupdlp.dir/cupdlp_solver.c.o
cd /home/user/repos/cuPDLP-C/build/cupdlp && /usr/bin/cc -DCUPDLP_CPU -DCUPDLP_DEBUG -Dcupdlp_EXPORTS  -g -std=gnu99 -fPIC -MD -MT cupdlp/CMakeFiles/cupdlp.dir/cupdlp_solver.c.o -MF CMakeFiles/cupdlp.dir/cupdlp_solver.c.o.d -o CMakeFiles/cupdlp.dir/cupdlp_solver.c.o -c /home/user/repos/cuPDLP-C/cupdlp/cupdlp_solver.c
[ 47%] Building C object cupdlp/CMakeFiles/cupdlp.dir/cupdlp_step.c.o
cd /home/user/repos/cuPDLP-C/build/cupdlp && /usr/bin/cc -DCUPDLP_CPU -DCUPDLP_DEBUG -Dcupdlp_EXPORTS  -g -std=gnu99 -fPIC -MD -MT cupdlp/CMakeFiles/cupdlp.dir/cupdlp_step.c.o -MF CMakeFiles/cupdlp.dir/cupdlp_step.c.o.d -o CMakeFiles/cupdlp.dir/cupdlp_step.c.o -c /home/user/repos/cuPDLP-C/cupdlp/cupdlp_step.c
[ 52%] Building C object cupdlp/CMakeFiles/cupdlp.dir/cupdlp_utils.c.o
cd /home/user/repos/cuPDLP-C/build/cupdlp && /usr/bin/cc -DCUPDLP_CPU -DCUPDLP_DEBUG -Dcupdlp_EXPORTS  -g -std=gnu99 -fPIC -MD -MT cupdlp/CMakeFiles/cupdlp.dir/cupdlp_utils.c.o -MF CMakeFiles/cupdlp.dir/cupdlp_utils.c.o.d -o CMakeFiles/cupdlp.dir/cupdlp_utils.c.o -c /home/user/repos/cuPDLP-C/cupdlp/cupdlp_utils.c
[ 58%] Linking C shared library ../lib/libcupdlp.so
cd /home/user/repos/cuPDLP-C/build/cupdlp && /usr/bin/cmake -E cmake_link_script CMakeFiles/cupdlp.dir/link.txt --verbose=1
/usr/bin/cc -fPIC -g -shared -Wl,-soname,libcupdlp.so -o ../lib/libcupdlp.so CMakeFiles/cupdlp.dir/cupdlp_cs.c.o CMakeFiles/cupdlp.dir/cupdlp_linalg.c.o CMakeFiles/cupdlp.dir/cupdlp_mps.c.o CMakeFiles/cupdlp.dir/cupdlp_proj.c.o CMakeFiles/cupdlp.dir/cupdlp_restart.c.o CMakeFiles/cupdlp.dir/cupdlp_scaling_cuda.c.o CMakeFiles/cupdlp.dir/cupdlp_solver.c.o CMakeFiles/cupdlp.dir/cupdlp_step.c.o CMakeFiles/cupdlp.dir/cupdlp_utils.c.o  -lm 
gmake[2]: Leaving directory '/home/user/repos/cuPDLP-C/build'
[ 58%] Built target cupdlp
/usr/bin/gmake  -f interface/CMakeFiles/wrapper_lp.dir/build.make interface/CMakeFiles/wrapper_lp.dir/depend
gmake[2]: Entering directory '/home/user/repos/cuPDLP-C/build'
cd /home/user/repos/cuPDLP-C/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/user/repos/cuPDLP-C /home/user/repos/cuPDLP-C/interface /home/user/repos/cuPDLP-C/build /home/user/repos/cuPDLP-C/build/interface /home/user/repos/cuPDLP-C/build/interface/CMakeFiles/wrapper_lp.dir/DependInfo.cmake "--color="
gmake[2]: Leaving directory '/home/user/repos/cuPDLP-C/build'
/usr/bin/gmake  -f interface/CMakeFiles/wrapper_lp.dir/build.make interface/CMakeFiles/wrapper_lp.dir/build
gmake[2]: Entering directory '/home/user/repos/cuPDLP-C/build'
[ 64%] Building C object interface/CMakeFiles/wrapper_lp.dir/mps_lp.c.o
cd /home/user/repos/cuPDLP-C/build/interface && /usr/bin/cc -DCUPDLP_CPU -DCUPDLP_DEBUG -Dwrapper_lp_EXPORTS  -g -std=gnu99 -fPIC -MD -MT interface/CMakeFiles/wrapper_lp.dir/mps_lp.c.o -MF CMakeFiles/wrapper_lp.dir/mps_lp.c.o.d -o CMakeFiles/wrapper_lp.dir/mps_lp.c.o -c /home/user/repos/cuPDLP-C/interface/mps_lp.c
[ 70%] Linking C shared library ../lib/libwrapper_lp.so
cd /home/user/repos/cuPDLP-C/build/interface && /usr/bin/cmake -E cmake_link_script CMakeFiles/wrapper_lp.dir/link.txt --verbose=1
/usr/bin/cc -fPIC -g -shared -Wl,-soname,libwrapper_lp.so -o ../lib/libwrapper_lp.so CMakeFiles/wrapper_lp.dir/mps_lp.c.o  -Wl,-rpath,/home/user/repos/cuPDLP-C/build/lib ../lib/libcupdlp.so -lm 
gmake[2]: Leaving directory '/home/user/repos/cuPDLP-C/build'
[ 70%] Built target wrapper_lp
/usr/bin/gmake  -f interface/CMakeFiles/wrapper_highs.dir/build.make interface/CMakeFiles/wrapper_highs.dir/depend
gmake[2]: Entering directory '/home/user/repos/cuPDLP-C/build'
cd /home/user/repos/cuPDLP-C/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/user/repos/cuPDLP-C /home/user/repos/cuPDLP-C/interface /home/user/repos/cuPDLP-C/build /home/user/repos/cuPDLP-C/build/interface /home/user/repos/cuPDLP-C/build/interface/CMakeFiles/wrapper_highs.dir/DependInfo.cmake "--color="
gmake[2]: Leaving directory '/home/user/repos/cuPDLP-C/build'
/usr/bin/gmake  -f interface/CMakeFiles/wrapper_highs.dir/build.make interface/CMakeFiles/wrapper_highs.dir/build
gmake[2]: Entering directory '/home/user/repos/cuPDLP-C/build'
[ 76%] Building C object interface/CMakeFiles/wrapper_highs.dir/mps_lp.c.o
cd /home/user/repos/cuPDLP-C/build/interface && /usr/bin/cc -DCUPDLP_CPU -DCUPDLP_DEBUG -Dwrapper_highs_EXPORTS -I/usr/local/include/highs -g -std=gnu99 -fPIC -MD -MT interface/CMakeFiles/wrapper_highs.dir/mps_lp.c.o -MF CMakeFiles/wrapper_highs.dir/mps_lp.c.o.d -o CMakeFiles/wrapper_highs.dir/mps_lp.c.o -c /home/user/repos/cuPDLP-C/interface/mps_lp.c
[ 82%] Building CXX object interface/CMakeFiles/wrapper_highs.dir/wrapper_highs.cpp.o
cd /home/user/repos/cuPDLP-C/build/interface && /usr/bin/c++ -DCUPDLP_CPU -DCUPDLP_DEBUG -Dwrapper_highs_EXPORTS -I/usr/local/include/highs -g -std=gnu++11 -fPIC -MD -MT interface/CMakeFiles/wrapper_highs.dir/wrapper_highs.cpp.o -MF CMakeFiles/wrapper_highs.dir/wrapper_highs.cpp.o.d -o CMakeFiles/wrapper_highs.dir/wrapper_highs.cpp.o -c /home/user/repos/cuPDLP-C/interface/wrapper_highs.cpp
[ 88%] Linking CXX shared library ../lib/libwrapper_highs.so
cd /home/user/repos/cuPDLP-C/build/interface && /usr/bin/cmake -E cmake_link_script CMakeFiles/wrapper_highs.dir/link.txt --verbose=1
/usr/bin/c++ -fPIC -g -shared -Wl,-soname,libwrapper_highs.so -o ../lib/libwrapper_highs.so CMakeFiles/wrapper_highs.dir/mps_lp.c.o CMakeFiles/wrapper_highs.dir/wrapper_highs.cpp.o  -Wl,-rpath,/home/user/repos/cuPDLP-C/build/lib:/usr/local/lib ../lib/libcupdlp.so /usr/local/lib/libhighs.so -lm 
gmake[2]: Leaving directory '/home/user/repos/cuPDLP-C/build'
[ 88%] Built target wrapper_highs
/usr/bin/gmake  -f interface/CMakeFiles/plc.dir/build.make interface/CMakeFiles/plc.dir/depend
gmake[2]: Entering directory '/home/user/repos/cuPDLP-C/build'
cd /home/user/repos/cuPDLP-C/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/user/repos/cuPDLP-C /home/user/repos/cuPDLP-C/interface /home/user/repos/cuPDLP-C/build /home/user/repos/cuPDLP-C/build/interface /home/user/repos/cuPDLP-C/build/interface/CMakeFiles/plc.dir/DependInfo.cmake "--color="
gmake[2]: Leaving directory '/home/user/repos/cuPDLP-C/build'
/usr/bin/gmake  -f interface/CMakeFiles/plc.dir/build.make interface/CMakeFiles/plc.dir/build
gmake[2]: Entering directory '/home/user/repos/cuPDLP-C/build'
[ 94%] Building C object interface/CMakeFiles/plc.dir/mps_highs.c.o
cd /home/user/repos/cuPDLP-C/build/interface && /usr/bin/cc -DCUPDLP_CPU -DCUPDLP_DEBUG -I/usr/local/include/highs -g -std=gnu99 -MD -MT interface/CMakeFiles/plc.dir/mps_highs.c.o -MF CMakeFiles/plc.dir/mps_highs.c.o.d -o CMakeFiles/plc.dir/mps_highs.c.o -c /home/user/repos/cuPDLP-C/interface/mps_highs.c
In file included from /home/user/repos/cuPDLP-C/interface/mps_highs.c:2:
/home/user/repos/cuPDLP-C/interface/wrapper_highs.h:12: warning: "CUPDLP_INIT" redefined
   12 | #define CUPDLP_INIT(var, size)                                  \
      | 
In file included from /home/user/repos/cuPDLP-C/interface/../cupdlp/cupdlp_defs.h:15,
                 from /home/user/repos/cuPDLP-C/interface/../cupdlp/cupdlp_cs.h:4,
                 from /home/user/repos/cuPDLP-C/interface/../cupdlp/cupdlp.h:5,
                 from /home/user/repos/cuPDLP-C/interface/mps_lp.h:4,
                 from /home/user/repos/cuPDLP-C/interface/mps_highs.c:1:
/home/user/repos/cuPDLP-C/interface/../cupdlp/glbopts.h:144: note: this is the location of the previous definition
  144 | #define CUPDLP_INIT(var, size)                                  \
      | 
[100%] Linking C executable ../bin/plc
cd /home/user/repos/cuPDLP-C/build/interface && /usr/bin/cmake -E cmake_link_script CMakeFiles/plc.dir/link.txt --verbose=1
/usr/bin/cc -g CMakeFiles/plc.dir/mps_highs.c.o -o ../bin/plc  -Wl,-rpath,/home/user/repos/cuPDLP-C/build/lib:/usr/local/lib ../lib/libwrapper_highs.so /usr/local/lib/libhighs.so ../lib/libcupdlp.so -lm 
gmake[2]: Leaving directory '/home/user/repos/cuPDLP-C/build'
[100%] Built target plc
gmake[1]: Leaving directory '/home/user/repos/cuPDLP-C/build'
/usr/bin/cmake -E cmake_progress_start /home/user/repos/cuPDLP-C/build/CMakeFiles 0

Does this ring a bell?

@fuglede
Copy link
Contributor Author

fuglede commented Apr 2, 2024

The segfault itself comes from here:

$ gdb build/bin/plc 
Reading symbols from build/bin/plc...
(gdb) run
Starting program: /home/user/repos/cuPDLP-C/build/bin/plc 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
--------------------------------------------------
reading file...
	./example/afiro.mps
--------------------------------------------------
Running HiGHS 1.7.0 (git hash: 13363c9f1): Copyright (c) 2024 HiGHS under MIT licence terms
Minimize
No obj offset

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7d1d381 in Init_Scaling () from /usr/local/lib/libhighs.so.1

@fuglede
Copy link
Contributor Author

fuglede commented Apr 2, 2024

Linking to HiGHS 1.6.0 works, with and without CUDA, so this appears to just be a dependency versioning issue.

I tried building #17 instead but get a ton of other warnings/errors, so some amount of work would be required to get this up and running, it seems.

@SkyLiu0
Copy link
Collaborator

SkyLiu0 commented Apr 5, 2024

Hi, thank you for your feedback! Our cuPDLP-C is developed with the mps reader of HiGHS 1.6.0 and we are still trying to improve its usability and stability.
Currently, HiGHS 1.7.0 https://highs.dev integrates the CPU part of our cuPDLP-C (no GPU part may cause several conflicts 😭).
For a more stable and user-friendly version with both CPU and GPU parts of our solver, we highly recommend you to try COPT 7.1 https://www.shanshu.ai/copt with the parameter LpMethod = 6. You can easily get a free license for academic use😉.

@hannes-uppman
Copy link
Contributor

hannes-uppman commented Apr 6, 2024

I too got a bunch of problems when trying to use HiGHS 1.7, I think they mostly came from the fact that HiGHS 1.7 includes a copy of this project. So, I deleted src/pdlp in HiGHS and recompiled the library (this required only minor patching), and this has worked fine for me this far (but I have only tested a couple of models).

This seems related ERGO-Code/HiGHS#1694

@jajhall
Copy link

jajhall commented May 19, 2024

Yes, sorry, I didn't think that including a modified version of cuPDLP-C in HiGHS would cause problems. I'm about to rename the modified methods so that the native cuPDLP-C will work with future versions of HiGHS.

@jajhall
Copy link

jajhall commented May 23, 2024

I've modified the names of the two cuPDLP-C methods that I modified to control logging, so that the original cuPDLP-C methods are called when building the stand-alone version. The modified code has been pushed to https://github.com/ERGO-Code/HiGHS/tree/latest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants