Forum Discussion
FICO
3 years agoCommunity Manager
__lll_lock_wait allowing only one thread to work
I am calling the XPRESS optimizer from a multithreaded Pascal application and having performance issues with the solver.
While the program is multithreaded, all but one of the threads are sleeping all the time. A quick examination using gdb shows that those threads that are waiting are doing so after the call to XPRSdestroyprob:
(gdb) where
#0 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0
#1 0x00007ffff7bbab44 in pthread_mutex_lock () from /lib64/libpthread.so.0
#2 0x00007ffff62981c1 in ?? () from /opt/xpressmp/lib/libxprs.so.41
#3 0x00007ffff4eb403e in XPRSdestroyprob_internal () from /opt/xpressmp/lib/libxprs.so.41
#4 0x00007ffff49881e9 in XPRSdestroyprob () from /opt/xpressmp/lib/libxprs.so.41
Am I calling the XPRESS solver library function in a wrong way?
Thank you very much.
21 Replies
- FICOCommunity Manager
I set the ulimit -n to 100K and now it doesn't appear to fail anymore.
The issue is now finding out why threads are waiting for a mutex on a function that one would expect to be able to run in parallel threads.
(gdb) info threads Id Target Id Frame * 1 Thread 0x7ffff7fe7740 (LWP 2095381) "cmdopt_xprs" 0x00007ffff7bbe3fc in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 2 Thread 0x7ffff0678700 (LWP 2096062) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 3 Thread 0x7ffff0277700 (LWP 2096063) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 4 Thread 0x7fffefe76700 (LWP 2096064) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 5 Thread 0x7fffefa75700 (LWP 2096065) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 6 Thread 0x7fffef674700 (LWP 2096066) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 7 Thread 0x7fffef273700 (LWP 2096067) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 8 Thread 0x7fffeee72700 (LWP 2096068) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 9 Thread 0x7fffeea71700 (LWP 2096069) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 10 Thread 0x7fffee670700 (LWP 2096070) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 11 Thread 0x7fffee26f700 (LWP 2096071) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 12 Thread 0x7fffede6e700 (LWP 2096072) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 13 Thread 0x7fffeda6d700 (LWP 2096073) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 14 Thread 0x7fffed66c700 (LWP 2096074) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 15 Thread 0x7fffed26b700 (LWP 2096075) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 16 Thread 0x7fffece6a700 (LWP 2096076) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 17 Thread 0x7fffeca69700 (LWP 2096077) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 18 Thread 0x7fffec668700 (LWP 2096078) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 19 Thread 0x7fffaffff700 (LWP 2096079) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 20 Thread 0x7fffafbfe700 (LWP 2096080) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 21 Thread 0x7fffaf7fd700 (LWP 2096081) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 22 Thread 0x7fffaf3fc700 (LWP 2096082) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 23 Thread 0x7fffaeffb700 (LWP 2096083) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 24 Thread 0x7fffaebfa700 (LWP 2096084) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 25 Thread 0x7fffae7f9700 (LWP 2096085) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 26 Thread 0x7fffae3f8700 (LWP 2096086) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 27 Thread 0x7fffadff7700 (LWP 2096087) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 28 Thread 0x7fffadbf6700 (LWP 2096088) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 29 Thread 0x7fffad7f5700 (LWP 2096089) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 30 Thread 0x7fffad3f4700 (LWP 2096090) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 31 Thread 0x7fffacff3700 (LWP 2096091) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 32 Thread 0x7fffacbf2700 (LWP 2096092) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 33 Thread 0x7fffac7f1700 (LWP 2096093) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 34 Thread 0x7fff6bfff700 (LWP 2096094) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 35 Thread 0x7fff6bbfe700 (LWP 2096095) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 36 Thread 0x7fff6b7fd700 (LWP 2096096) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 37 Thread 0x7fff6b3fc700 (LWP 2096097) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 38 Thread 0x7fff6affb700 (LWP 2096098) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 39 Thread 0x7fff6abfa700 (LWP 2096099) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 40 Thread 0x7fff6a7f9700 (LWP 2096100) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 41 Thread 0x7fff6a3f8700 (LWP 2096101) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 42 Thread 0x7fff69ff7700 (LWP 2096102) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 43 Thread 0x7fff69bf6700 (LWP 2096103) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 44 Thread 0x7fff697f5700 (LWP 2096104) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 45 Thread 0x7fff693f4700 (LWP 2096105) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 46 Thread 0x7fff68ff3700 (LWP 2096106) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 47 Thread 0x7fff68bf2700 (LWP 2096107) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 48 Thread 0x7fff687f1700 (LWP 2096108) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 49 Thread 0x7fff2bfff700 (LWP 2096109) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 50 Thread 0x7fff2bbfe700 (LWP 2096110) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 51 Thread 0x7fff2b7fd700 (LWP 2096111) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 52 Thread 0x7fff2b3fc700 (LWP 2096112) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 53 Thread 0x7fff2affb700 (LWP 2096113) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 54 Thread 0x7fff2abfa700 (LWP 2096114) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 55 Thread 0x7fff2a7f9700 (LWP 2096115) "cmdopt_xprs" 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0They are all waiting after the call to XPRSmipoptimize.
Thank you very much, Daniel. You've been very helpful every time I asked for help on this forum.
- FICOCommunity Manager
Just to confirm: you have 55 threads and each of them have their own XPRSprob and use a single thread to solve that (XPRS_THREADS is set to 1)?
Is your application dead-locking or is it just painfully slow?
Can you provide a backtrace for two or three of these threads?
- FICOCommunity Manager
The application is slow as threads are waiting on the mutex but it's not a deadlock. There are more than 55 threads, but less than the maximum number of threads that the server can handle concurrently. The server is under a very low load as shown in top.
Each of these threads builds its own XPRSprob and runs the optimization with XPRS_THREADS set to 1.
I am not sure what you mean by providing the backtrace. Is this what you mean (copied from a previous message)?
#0 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x00007ffff7bbab44 in pthread_mutex_lock () from /lib64/libpthread.so.0 #2 0x00007ffff62981c1 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #3 0x00007ffff5353605 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #4 0x00007ffff6b608c8 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #5 0x00007ffff6b6007a in ?? () from /opt/xpressmp/lib/libxprs.so.41 #6 0x00007ffff6b5ffcc in ?? () from /opt/xpressmp/lib/libxprs.so.41 #7 0x00007ffff556e680 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #8 0x00007ffff50036b2 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #9 0x00007ffff555efb0 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #10 0x00007ffff555f4cd in ?? () from /opt/xpressmp/lib/libxprs.so.41 #11 0x00007ffff555fdd1 in XPRSmaxim_internal () from /opt/xpressmp/lib/libxprs.so.41 #12 0x00007ffff555f7bd in XPRSmipoptimize_internal () from /opt/xpressmp/lib/libxprs.so.41 #13 0x00007ffff48a711d in XPRSmipoptimize () from /opt/xpressmp/lib/libxprs.so.41 #14 0x00000000004c1959 in RESOLVER (this=0x7fff2c649218) at ../../rchlib/mat/umipsimplex_xprs.pas:964Al threads are hitting the mutex in XPRS @0x00007ffff62981c1. I'm not sure if you could pinpoint this to a specific location in the source.
Thank you very much.
- FICOCommunity Manager
Yes, this is what I meant. So in _every_ thread the frame above pthread_mutex_lock() is 0x00007ffff62981c1?
Could you also provide the output of
(gdb) info sharedlibraryThis should print a list of all shared libraries currently loaded, together with their start and end address. From this we can figure out which function this address belongs to.
- FICOCommunity Manager
Sure, here's the output:
(gdb) info sharedlibrary From To Syms Read Shared Object Library 0x00007ffff7dd0fa0 0x00007ffff7df2d04 Yes (*) /lib64/ld-linux-x86-64.so.2 0x00007ffff7bb6820 0x00007ffff7bc4c15 Yes (*) /lib64/libpthread.so.0 0x00007ffff4500600 0x00007ffff717a6da Yes (*) /opt/xpressmp/lib/libxprs.so.41 0x00007ffff40140c0 0x00007ffff4014eb9 Yes (*) /lib64/libdl.so.2 0x00007ffff3c6fb90 0x00007ffff3dbc95d Yes (*) /lib64/libc.so.6 0x00007ffff38d8520 0x00007ffff39777ba Yes (*) /lib64/libm.so.6 0x00007ffff36c6430 0x00007ffff36c9770 Yes (*) /lib64/librt.so.1 0x00007ffff33f2080 0x00007ffff345a940 Yes (*) /opt/xpressmp/lib/libxprl.so.x9.0 0x00007ffff31d5e00 0x00007ffff31e6a55 Yes (*) /lib64/libgcc_s.so.1 (*): Shared library is missing debugging information.(gdb) thread 3 [Switching to thread 3 (Thread 0x7ffff0277700 (LWP 2096063))] #0 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 (gdb) where #0 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x00007ffff7bbab44 in pthread_mutex_lock () from /lib64/libpthread.so.0 #2 0x00007ffff62981c1 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #3 0x00007ffff53528bd in ?? () from /opt/xpressmp/lib/libxprs.so.41 #4 0x00007ffff6b62cb8 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #5 0x00007ffff6b6246a in ?? () from /opt/xpressmp/lib/libxprs.so.41 #6 0x00007ffff62947ed in ?? () from /opt/xpressmp/lib/libxprs.so.41 #7 0x00007ffff6293507 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #8 0x00007ffff629669e in ?? () from /opt/xpressmp/lib/libxprs.so.41 #9 0x00007ffff555f21e in ?? () from /opt/xpressmp/lib/libxprs.so.41 #10 0x00007ffff555f4cd in ?? () from /opt/xpressmp/lib/libxprs.so.41 #11 0x00007ffff555fdd1 in XPRSmaxim_internal () from /opt/xpressmp/lib/libxprs.so.41 #12 0x00007ffff555f7bd in XPRSmipoptimize_internal () from /opt/xpressmp/lib/libxprs.so.41 #13 0x00007ffff48a711d in XPRSmipoptimize () from /opt/xpressmp/lib/libxprs.so.41 #14 0x00000000004c1a4e in RESOLVER (this=0x7fffe0562bb8) at ../../rchlib/mat/umipsimplex_xprs.pas:976 #15 0x0000000000491484 in RESOLVERPASO (this=0x7fffe00099e8) at ../../fc/base/usalasdejuego.pas:5149 #16 0x000000000049edf5 in OPTIMIZACIONCRONIZADA_UNPASO_RANGODEESTRELLAS (this=0x7fffe00099e8, ESTRELLAINI=8624, ESTRELLAFIN=8819, NOTIFICAR=false, PRINTACTORES_OPTRES=false) at ../../fc/base/usalasdejuego.pas:8792 #17 0x000000000049f32e in CALCULARRANGOESTRELLAS (this=0x7fffe00099e8, ESTRELLAINI=8624, ESTRELLAFIN=8819, NOTIFICAR=false, PRINTACTORESOPTRES=false) at ../../fc/base/usalasdejuego.pas:8954 #18 0x00000000007ea05e in EJECUTAR (this=0x18852a48, WORKER=0xf7da58) at ../../fc/base/umh_worker_opt.pas:68 #19 0x00000000007e9c0d in EXECUTE (this=0xf7da58) at ../../fc/base/umh_sincrodata.pas:553 #20 0x00000000004dd7f8 in CLASSES_$$_THREADFUNC$POINTER$$INT64 () #21 0x0000000000f7da58 in ?? () #22 0x0000000000864438 in __dso_handle () #23 0x0000000000f7da58 in ?? () #24 0x0000000000413e18 in fpc_popaddrstack () #25 0x00007ffff0276d08 in ?? () #26 0x0000000000000000 in ?? ()(gdb) thread 4 [Switching to thread 4 (Thread 0x7fffefe76700 (LWP 2096064))] #0 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 (gdb) where #0 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x00007ffff7bbab44 in pthread_mutex_lock () from /lib64/libpthread.so.0 #2 0x00007ffff62981c1 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #3 0x00007ffff53528bd in ?? () from /opt/xpressmp/lib/libxprs.so.41 #4 0x00007ffff6b62cb8 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #5 0x00007ffff6b6246a in ?? () from /opt/xpressmp/lib/libxprs.so.41 #6 0x00007ffff62947ed in ?? () from /opt/xpressmp/lib/libxprs.so.41 #7 0x00007ffff6293507 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #8 0x00007ffff629669e in ?? () from /opt/xpressmp/lib/libxprs.so.41 #9 0x00007ffff555f21e in ?? () from /opt/xpressmp/lib/libxprs.so.41 #10 0x00007ffff555f4cd in ?? () from /opt/xpressmp/lib/libxprs.so.41 #11 0x00007ffff555fdd1 in XPRSmaxim_internal () from /opt/xpressmp/lib/libxprs.so.41 #12 0x00007ffff555f7bd in XPRSmipoptimize_internal () from /opt/xpressmp/lib/libxprs.so.41 #13 0x00007ffff48a711d in XPRSmipoptimize () from /opt/xpressmp/lib/libxprs.so.41 #14 0x00000000004c1a4e in RESOLVER (this=0x7fffe4562bb8) at ../../rchlib/mat/umipsimplex_xprs.pas:976 #15 0x0000000000491484 in RESOLVERPASO (this=0x7fffe40099e8) at ../../fc/base/usalasdejuego.pas:5149 #16 0x000000000049edf5 in OPTIMIZACIONCRONIZADA_UNPASO_RANGODEESTRELLAS (this=0x7fffe40099e8, ESTRELLAINI=13895, ESTRELLAFIN=14089, NOTIFICAR=false, PRINTACTORES_OPTRES=false) at ../../fc/base/usalasdejuego.pas:8792 #17 0x000000000049f32e in CALCULARRANGOESTRELLAS (this=0x7fffe40099e8, ESTRELLAINI=13895, ESTRELLAFIN=14089, NOTIFICAR=false, PRINTACTORESOPTRES=false) at ../../fc/base/usalasdejuego.pas:8954 #18 0x00000000007ea05e in EJECUTAR (this=0x1857b008, WORKER=0xf7cd38) at ../../fc/base/umh_worker_opt.pas:68 #19 0x00000000007e9c0d in EXECUTE (this=0xf7cd38) at ../../fc/base/umh_sincrodata.pas:553 #20 0x00000000004dd7f8 in CLASSES_$$_THREADFUNC$POINTER$$INT64 () #21 0x0000000000f7cd38 in ?? () #22 0x0000000000864438 in __dso_handle () #23 0x0000000000f7cd38 in ?? () #24 0x0000000000413e18 in fpc_popaddrstack () #25 0x00007fffefe75d08 in ?? () #26 0x0000000000000000 in ?? ()(gdb) thread 5 [Switching to thread 5 (Thread 0x7fffefa75700 (LWP 2096065))] #0 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 (gdb) where #0 0x00007ffff7bc175d in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x00007ffff7bbab44 in pthread_mutex_lock () from /lib64/libpthread.so.0 #2 0x00007ffff62981c1 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #3 0x00007ffff53528bd in ?? () from /opt/xpressmp/lib/libxprs.so.41 #4 0x00007ffff6b608c8 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #5 0x00007ffff6b6007a in ?? () from /opt/xpressmp/lib/libxprs.so.41 #6 0x00007ffff6054729 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #7 0x00007ffff500cc0c in ?? () from /opt/xpressmp/lib/libxprs.so.41 #8 0x00007ffff50035c9 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #9 0x00007ffff555efb0 in ?? () from /opt/xpressmp/lib/libxprs.so.41 #10 0x00007ffff555f4cd in ?? () from /opt/xpressmp/lib/libxprs.so.41 #11 0x00007ffff555fdd1 in XPRSmaxim_internal () from /opt/xpressmp/lib/libxprs.so.41 #12 0x00007ffff555f7bd in XPRSmipoptimize_internal () from /opt/xpressmp/lib/libxprs.so.41 #13 0x00007ffff48a711d in XPRSmipoptimize () from /opt/xpressmp/lib/libxprs.so.41 #14 0x00000000004c1a4e in RESOLVER (this=0x7fffd8562bb8) at ../../rchlib/mat/umipsimplex_xprs.pas:976 #15 0x0000000000491484 in RESOLVERPASO (this=0x7fffd80099e8) at ../../fc/base/usalasdejuego.pas:5149 #16 0x000000000049edf5 in OPTIMIZACIONCRONIZADA_UNPASO_RANGODEESTRELLAS (this=0x7fffd80099e8, ESTRELLAINI=2352, ESTRELLAFIN=2547, NOTIFICAR=false, PRINTACTORES_OPTRES=false) at ../../fc/base/usalasdejuego.pas:8792 #17 0x000000000049f32e in CALCULARRANGOESTRELLAS (this=0x7fffd80099e8, ESTRELLAINI=2352, ESTRELLAFIN=2547, NOTIFICAR=false, PRINTACTORESOPTRES=false) at ../../fc/base/usalasdejuego.pas:8954 #18 0x00000000007ea05e in EJECUTAR (this=0x152be6f8, WORKER=0xf7c568) at ../../fc/base/umh_worker_opt.pas:68 #19 0x00000000007e9c0d in EXECUTE (this=0xf7c568) at ../../fc/base/umh_sincrodata.pas:553 #20 0x00000000004dd7f8 in CLASSES_$$_THREADFUNC$POINTER$$INT64 () #21 0x0000000000f7c568 in ?? () #22 0x0000000000864438 in __dso_handle () #23 0x0000000000f7c568 in ?? () #24 0x0000000000413e18 in fpc_popaddrstack () #25 0x00007fffefa74d08 in ?? () #26 0x0000000000000000 in ?? ()Thank you very much!
- FICOCommunity Manager
I'll try to figure out what is going on there. Unfortunately, it will probably be next week before I can get to you.
- FICOCommunity Manager
Sure, that'd be perfect. Thank you very much for your help and time!
- FICOCommunity Manager
Sorry, I am having trouble figuring out what is actually causing these locks.
What are the non-default control setting you are using?
Would you be able to share one of the models your threads solve? I think one single model exported with XPRSwriteprob (potentially using flag "s" to scramble names) would be enough. I can then just solve the same model on many threads over and over again and will hopefully be able to reproduce your issue.
- FICOCommunity Manager
I attach one of the problems being solved. The solver is being used with its default values, only the control variable setting the number of threads to 1 is what's being set.
- FICOCommunity Manager
Thank you for your problem file. I think I managed to partially reproduce your problem here. The bad news is that I don't see a way to avoid this excessive locking in this case.
I'll file a request for improvement internally to get better performance for this use case.
Related Content
Related Content
Parameter Threads
Hi, I'm using Fico Xpress and I have a question about the parameter THREADS. According to the documentation, THREADS > 0 means the "number of threads to use". Let suppose THREADS = 4. In this ca...7 years agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum2 unread comments2 unread0Views0likes2CommentsConst correctness and thread safety in the C-API
How do I know : Which functions can be considered const i.e leave the XPRSprob in an unaltered state ? Which functions are thread safe ? (I am in particular interested in knowing if XPRSbtran and...3 years agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum3 unread comments3 unread0Views0likes3Comments