Programm legt auf, wenn es auf einer ähnlichen Maschine ausgeführt wurde

3

Ich führe ein Biologie-Computerprogramm NUPACK mit derselben Eingabe auf zwei leicht unterschiedlichen Macbooks Pro aus:

  • Der erste ist 10,14, 13 Zoll, 2,5 GHz Intel Core i7, 16 GB, 2133 MHz LPDDR3. Das Programm verwendet 99,9% CPU, 1 Thread und 7 MB RAM, läuft in 26 Sekunden. 8 MB realer Speicher, 6 MB privater Speicher
  • Der zweite ist 10.14.1, 2018 15-Zoll mit Magic Bar, 2,6 GHz Intel Core i7, 32 GB RAM, 2400 MHz DDR4. Dieser konnte nicht einmal das Skript in 20 Minuten fertigstellen, daher ist es mindestens 60x langsamer. Das Programm verwendet 1 Thread, 99% CPU, 2 MB realen Speicher, 800 KB privaten Speicher

Das Programm ist CMake-kompiliert (cmake wird über Homebrew installiert). Das eine andere ist, dass der Benutzer auf dem zweiten Computer zuerst versucht hat, CMake aus der vorkompilierten Binärdatei zu installieren, aber dann habe ich über installiert homebrew. Ich habe neu installiert homebrew und CMakeund kompilierte das Programm neu.

Auf beiden Rechnern läuft das Programm ohne oder mit schlechten Parametern (löst Fehler- / Hilfeinformationen aus), es handelt sich also wahrscheinlich nicht um einen Kompilierungsfehler. Der Installationsprozess war identisch und es wurden keine speziellen Flags / Modifikatoren verwendet.

Auf beiden Systemen befindet sich die Eingabedatei im lokalen Dateisystem (SSD) im Ordner Downloads. Beide haben ein APFS-Dateisystem (verschlüsselt). Ich starte Programme mit root (aber nicht mit root) sudo ... )

Was kann ich tun, um das Problem weiter zu beheben? Beide Laptops laufen in einer sehr ähnlichen Softwareumgebung (von der Universität erworbene Laptops mit Sophos Anti-Virus), und ich kann kaum Unterschiede zwischen beiden feststellen.

Das Programm befindet sich nicht auf beiden Computern in der Sandbox

Aktualisieren mit Daten aus dem Probenahmeprozess:

Erfolg und Fehlgeschlagene Ausführung

Eine Sache, die wichtig erscheint, sind diese Fehler:

+ 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]

Was bedeutet dieser Fehler? Kann ich damit debuggen?

 + ! 3 funlockfile  (in libsystem_c.dylib) + 15  [0x7fff631ecec4]
 + !   3 __error  (in libsystem_kernel.dylib) + 23,0  [0x7fff6329f574,0x7fff6329f55d]

Update 2

Interessante Beobachtung: Auf der zweiten Maschine (FAIL) kann ich das Programm nicht zum Laufen bringen sudo program file_name. Es startet niemals den Programmablauf!

aaaaaa
quelle
1
Meinen Sie einen 2.6GHz Ader i7? Ich bin hier wählerisch. Ich würde mir anschauen, warum der 2018 MBP weitaus weniger Speicher als der 2017 MBP benötigt.
IconDaemon
1
Läuft es auf dem Mac 2018 im Sandkastenmodus? Öffnen Sie den Aktivitätsmonitor und fügen Sie der Menüleiste Sandbox hinzu
Buscar웃
1
danke, zurück zum Activity Monitor, vergleiche die 2 Macs für die gleiche App, von der Anzahl der offenen Schritte bis zur Ausführung eines Sample Process Bericht. Vergleichen Sie die Ergebnisse.
Buscar웃
1
@Buscar 웃 Anzahl der Threads ist gleich = 1. Ich habe einen Blick auf die Registerkarte Prozess des Samples geworfen, aber ich bin mir nicht sicher, wonach sie suchen soll. Aus meiner Sicht scheint der 2. Laptop bei einem bestimmten Programmschritt festzuhalten. Ich bin mit Sample Process überhaupt nicht vertraut, um zu wissen, wonach ich suchen muss
aaaaaa
1
Wie wurde der erste Versuch, cmake zu installieren, genau gemacht? Wo wurden die konfigurierten Variablen wie das Verzeichnis usw. installiert? Ich würde dort anfangen, im Quellverzeichnis des ursprünglichen Kompilierungsversuchs, und jedes Makefile für eine Deinstallations- oder Entfernungsanweisung grep und das ausführen, bevor das Quellverzeichnis weggeblasen und die Homebrew-Version deinstalliert und gereinigt wurde. Installieren Sie dann die Homebrew-Version erneut.
Francis from ResponseBase