Sto eseguendo un programma di biologia computazionale NUPACK, con lo stesso input, su due MacBook Pro leggermente diversi:
- Il primo è 10,14, 2017 da 13 pollici, 2,5 GHz Intel Core i7, 16 GB 2133 MHz LPDDR3. il programma utilizza CPU al 99,9%, 1 thread e 7 MB di RAM, viene eseguito in 26 secondi. 8 MB di memoria reale, 6 MB di memoria privata
- Il secondo è 10.14.1, 2018 15 pollici con barra magica, Intel Core i7 da 2,6 GHz, 32 GB RAM DDR4 da 2400 MHz. Questo non poteva nemmeno terminare l'esecuzione di script in 20 minuti, quindi è almeno 60 volte più lento. Il programma utilizza 1 thread, CPU al 99%, memoria reale da 2 MB, memoria privata da 800 KB
Il programma è compilato CMake (cmake installato tramite homebrew). L'unica cosa diversa è che sulla seconda macchina, l'utente prima ha tentato di installare CMake dal binario precompilato, ma poi ho installato tramite homebrew
. Ho reinstallato homebrew
e CMake
e ho ricompilato il programma.
Su entrambe le macchine il programma gira OK senza parametri o con parametri non validi (genera errore / informazioni di aiuto), quindi probabilmente non è un errore di compilazione. Il processo di installazione era identico e non sono stati usati flag / modificatori speciali.
Su entrambi i sistemi il file di input risiede sul filesystem locale (SSD), nella cartella Download. Entrambi hanno un filesystem APFS (criptato). Eseguo programmi utilizzando l'utente root (ma non sudo ...
)
Che cosa posso fare per risolvere ulteriormente questo problema? Entrambi i laptop funzionano in un ambiente software molto simile (computer portatili acquistati dall'università con Sophos anti-virus) e posso notare differenze minime tra due.
Il programma non è in Sandbox su entrambi i computer
Aggiornamento con i dati del processo di campionamento:
Success e non riuscito eseguire
Una cosa che sembra importante sono questi errori:
+ 51 fgets (in libsystem_c.dylib) + 42 [0x7fff631ed7ec]
+ ! 27 flockfile (in libsystem_c.dylib) + 31 [0x7fff631ece6c]
+ ! : 14 _pthread_mutex_lock_init_slow (in libsystem_pthread.dylib) + 37 [0x7fff633561f9]
+ ! : | 14 _pthread_mutex_check_init_slow (in libsystem_pthread.dylib) + 21,4,... [0x7fff6335623d,0x7fff6335622c,...]
+ ! : 7 pthread_mutex_lock (in libsystem_pthread.dylib) + 0,120 [0x7fff6335614b,0x7fff633561c3]
+ ! : 6 _pthread_mutex_lock_init_slow (in libsystem_pthread.dylib) + 42,6,... [0x7fff633561fe,0x7fff633561da,...]
+ ! 7 flockfile (in libsystem_c.dylib) + 36 [0x7fff631ece71]
+ ! : 7 __error (in libsystem_kernel.dylib) + 0,23 [0x7fff6329f55d,0x7fff6329f574]
+ ! 7 flockfile (in libsystem_c.dylib) + 10,42,... [0x7fff631ece57,0x7fff631ece77,...]
+ ! 5 DYLD-STUB$$__error (in libsystem_c.dylib) + 0 [0x7fff63233218]
+ ! 5 flockfile (in libsystem_c.dylib) + 15 [0x7fff631ece5c]
+ ! 5 __error (in libsystem_kernel.dylib) + 0,23 [0x7fff6329f55d,0x7fff6329f574]
Che cosa significa questo errore? Posso usarlo per eseguire il debug?
+ ! 3 funlockfile (in libsystem_c.dylib) + 15 [0x7fff631ecec4]
+ ! 3 __error (in libsystem_kernel.dylib) + 23,0 [0x7fff6329f574,0x7fff6329f55d]
Aggiornamento 2
Osservazione interessante: sulla seconda macchina (FAIL) non riesco a far funzionare il programma come sudo program file_name
. Non avvia mai il processo del programma!