У меня есть код моделирования, написанный на C ++ с использованием стандартных библиотек вместе с библиотекой Eigen для линейной алгебры и матриц, и наблюдал следующий эффект:
Если я запускаю его на своем персональном ноутбуке, который является Macbook с OS X, я получаю результаты, отличные от того, что получаю, если я запускаю его на своем офисе P C с Ubutuntu OS
Разница в среднем результате составляет приблизительно 20%.
Я уверен, что это один и тот же код, потому что оба используют обновленную версию одного и того же репозитория.
Код слишком сложен, чтобы предоставить его здесь, и имеет много сложных механизмов внутри.
Примечание: Работа на одном и том же устройстве всегда дает одинаковое среднее значение, поэтому мои результаты воспроизводимы, если они выполняются на одном и том же устройстве.
Как мне это интерпретировать? Что мой код ошибочен? Или такие эффекты нормальны?
Заранее спасибо!
Edit1: Я использую qmake, но когда я запускаю команду make, это пример строки для компиляции моего main. cpp на моем Ubuntu P C:
g++ -c -pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_CORE_LIB -I. -ICommon -INetwork -IEigen -I../../../Qt/5.10.0/gcc_64/include -I../../../Qt/5.10.0/gcc_64/include/QtCore -Imocs -I../../../Qt/5.10.0/gcc_64/mkspecs/linux-g++ -o objs/main.o main.cpp
Эта же строка выглядит на моем ноутбуке с OS X следующим образом:
/Library/Developer/CommandLineTools/usr/bin/clang++ -c -pipe -stdlib=libc++ -g -std=gnu++11 -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.13 -Wall -Wextra -fPIC -DQT_DEPRECATED_WARNINGS -DQT_CORE_LIB -I. -ICommon -INetwork -IEigen -I../../../opt/Qt5.14/lib/QtCore.framework/Headers -Imocs -I../../../opt/Qt5.14/mkspecs/macx-clang -F/Users/XXX/opt/Qt5.14/lib -o objs/main.o main.cpp
Edit2: У меня есть массив парных чисел, который рассчитывается в автономном режиме с использованием библиотек Eigen. Оффлайн означает здесь, что элементы массива имеют значения c, то есть справочную таблицу. Итак, я сравнил контент на обеих платформах, и (печатный) контент полностью идентичен.