Может ли режим округления FPU, установленный из процесса Python, быть изменен другим процессом Python?
Я много использую библиотеку libqd, которая требует установки режима округления FPU перед любым вычислением. До сих пор я в основном использовал его в программах на Си, но я хотел бы время от времени использовать его из скриптов Python.
Я слышал о глобальной блокировке интерпретатора (GIL), которая описана по адресу https://wiki.python.org/moin/GlobalInterpreterLock или в ответе на этот вопрос тот же экземпляр интерпретатора Python, выполняющий несколько сценариев одновременно?
На первой из этих двух страниц я могу прочитать: "GIL противоречив, потому что не позволяет многопоточным программам CPython в полной мере использовать преимущества многопроцессорных систем в определенных ситуациях".
Поэтому мне интересно, может ли очень длинное вычисление (например, несколько дней) быть нарушено другой программой Python, работающей на той же машине: может ли случиться так, что режим округления FPU будет изменен другим процессом во время вычисления?
1 ответ
Нет, GIL для каждого процесса. Вы используете отдельного переводчика для каждого процесса. Операционная система должна убедиться, что разные процессы не могут влиять друг на друга.
Связанный вопрос предполагает, что операционная система может совместно использовать некоторую память между этими различными процессами, но только память, которая одинакова в обоих.