Архив статей журнала
Модель памяти языка программирования определяет семантику многопоточных программ, создаваемых на этом языке и оперирующих с разделяемой памятью. Наиболее известна модель последовательной согласованности, которая является слишком строгой, запрещая многие сценарии поведения, наблюдаемые при исполнении программ на современных процессорах. Попытки формально описать эти сценарии привели к возникновению так называемых слабых моделей памяти. В последние годы было предложено значительное количество слабых моделей памяти для различных языков программирования. Эти модели предлагают различные компромиссы относительно простоты/сложности рассуждений о поведении многопоточных программ и возможностей их оптимизации. Цель данной статьи заключается в обзоре существующих моделей памяти языков программирования и выработке общих рекомендаций по выбору/созданию модели памяти при создании/стандартизации языков программирования, а также при разработке компиляторов. Для данного обзора мы рассмотрели более 2000 статей, найденных по ключевым словам “Relaxed Memory Models”, “Weak Memory Models”, и “Weak Memory Consistency” поисковой системой Google Scholar. Используя разные критерии, мы сузили это множество до 40 статей, предлагающих и описывающих модели памяти языков программирования. Мы разделили эти модели на шесть классов и проанализировали их свойства и ограничения. В заключение мы показали, как дизайн языка программирования влияет на выбор модели памяти и обсудили возможные направления дальнейших исследований в этой области.
За последние годы популярность языка Go значительно возросла. Вместе с тем в настоящее время для языка Go существуют только легковесные статические анализаторы. Мы восполнили этот пробел, адаптировав статический анализатор Svace для поиска ошибок в программах на языке Go. Нами был реализован межпроцедурный и межмодульный статический анализатор имеющий чувствительность к потоку и путям. Для оценки результатов использовалось 10 проектов с открытым исходным кодом. 16 оцениваемых детекторов выдали 6817 предупреждений с 76 срабатываний.
В 2020 пандемия коронавируса затронула миллиарды людей по всему свету и заставила пересмотреть отношение к системам здравоохранения и к методам, используемым в современной медицине. Ввиду высокой нагрузки на радиологов и врачей появилась необходимость автоматических систем выявления патологий на медицинских исследованиях. Множество работ, посвященных работе с КТ-снимками пациентов с Covid-19, предполагают внедрение в системы медицинской помощи. Но улучшение по “классическим” метрикам вроде mAP или IoU по всем исследованиям не всегда отображает улучшение модели с точки зрения врачей. В данной работе было предложено считать метрики, усредняя не по всем исследованиям, а по группам в зависимости от размера патологий, а также оценивать количество ложноположительных участков найденных вне легких, поскольку наличие таких участков очень негативно оценивается врачами. Так же был предложен метод, улучшающий сегментацию патологий легких и плеврального выпота, с учетом замечаний, которые были высказаны выше.
Подавление артефактов ложного оконтуривания на изображениях (эффектов ложного оконтуривания, англ. ringing) – это распространенная задача области восстановления изображений. Осцилляции Гиббса возникают из-за методики визуализации изображений магнитно-резонансной томографии, при которой исходные данные, поступающие в частотной области, отображаются в пространственную область с помощью дискретного преобразования Фурье. Появление осцилляций Гиббса обусловлено неполнотой получаемой информации, связанной в том числе с обрезкой высоких частот Фурье-спектра. В данной статье предлагается гибридный метод подавления артефактов ложного оконтуривания на изображениях магнитно-резонансной томографии, заключающийся в объединении моделей глубокого машинного обучения и классического необучаемого алгоритма подавления осцилляций Гиббса, основанного на поиске оптимальных субпиксельных сдвигов.
Предлагается пакет символьного построения экспоненциально-логарифмических решений таких линейных обыкновенных дифференциальных уравнений, которые могут иметь неполностью заданные (усеченные) коэффициенты – степенные ряды, для которых известны только начальные члены. Входящие в решения ряды также представляются конечным числом начальных членов. Для каждого такого ряда вычисляется максимально возможное число начальных членов, полностью определенных известными начальными фрагментами коэффициентов уравнения. При этом степень усечения каждого из этих рядов не может превосходить заданной пользователем величины. Последнее обеспечивает окончание вычисления и тогда, когда по известным фрагментам коэффициентов уравнения может быть определено любое число членов рядов, входящих в решения.
В статье предложены два наиболее простых метода определения положений равновесия спутника, движущегося в центральном ньютоновом силовом поле по круговой орбите под действием гравитационного момента. В первом методе применялись подходы линейной алгебры, во втором алгоритмы компьютерной алгебры. Положения равновесия спутника в орбитальной системе координат при заданных значениях главных центральных моментов инерции определяются корнями системы нелинейных алгебраических уравнений. Для определения равновесных решений проводилась декомпозиция системы алгебраических уравнений с применением методов линейной алгебры и алгоритмов построения базисов Гребнера. Положения равновесия спутника определялись путем исследования числа действительных корней алгебраических уравнений из полученных базисов Гребнера. С использованием предложенного подхода показано, что спутник с неравными главными центральными моментами инерции имеет на круговой орбите 24 положения равновесия.
Для систем обыкновенных дифференциальных уравнений (ОДУ) с невырожденной линейной частью в общем и гамильтоновом случаях ставится задача отыскания инвариантных координатных подпространств в координатах ее нормальной формы, вычисленной вблизи положения равновесия. Приведены условия существования таких инвариантных подпространств в терминах резонансных соотношений между собственными числами линейной части системы. Дан алгоритм поиска резонансных соотношений между собственными числами без их явного вычисления, который существенно использует методы компьютерной алгебры и q-аналог субрезультантов многочлена. Обсуждается его реализация в трех распространенных системах компьютерной алгебры – Mathematica, Maple и SymPy. Приведены содержательные модельные примеры.
Предложены эвристические вероятностные алгоритмы полиномиального времени с односторонней ошибкой для распознавания кубических гиперповерхностей, чьи сингулярные локусы не содержат никакого линейного подпространства достаточно большой размерности. Эти алгоритмы легко реализовать в системах компьютерной алгебры. Алгоритмы основаны на проверке условий, что гессиан кубической формы не обращается в нуль тождественно или не определяет конус в проективном пространстве. Проверка свойств гессиана, в свою очередь, выполнима вероятностными алгоритмами с односторонней ошибкой, основанными на лемме Шварца–Зиппеля.
Рассматривается задача построения начальных членов формальных лорановых рядов, являющихся решениями для заданной компоненты yk (1⩽k⩽m) вектора неизвестных y дифференциальной системы y′=Ay, где y=(y1,…,ym)T, A – m × m-матрица, элементами которой являются d-усечения формальных лорановых рядов, т.е. их начальные члены до степени d⩾0 включительно. Предлагается алгоритм решения задачи с использованием алгоритма TSLS (Truncated Series Laurent Solution). Строящиеся предлагаемым алгоритмом первые члены формальных лорановых решений для yk являются инвариантными относительно возможных продолжений элементов матрицы исходной системы.
В статье предлагается алгоритмическая реализация элементарной версии метода Рунге для семейства диофантовых уравнений 4-й степени с двумя неизвестными. К уравнениям рассматриваемого типа сводится любое диофантово уравнение 4-й степени, старшая однородная часть которого разлагается в произведение линейного и кубического многочленов. Компьютерную реализацию алгоритма решения (в его оптимизированном виде) предполагается осуществить в системе компьютерной алгебры PARI/GP.
Компьютерная алгебра все шире применяется в научных и прикладных вычислениях. В качестве примера приведем тензорные вычисления или в более широком смысле этого слова – упрощение выражений с индексами. В настоящей статье развивается метод цветных графов для упрощения абстрактных выражений с индексами на случай, когда индексы могут быть отнесены к нескольким различным типам. Примерами таких индексов могут быть верхние и нижние индексы в тензорных выражениях. Предложенный подход позволяет значительно уменьшить число перебираемых вариантов при поиске канонической формы выражения, что резко ускоряет процесс вычислений.
В работе исследуется задача символьного представления общего решения системы обыкновенных дифференциальных уравнений с постоянными коэффициентами, заданными в символьном виде, при условии, что некоторые символьные константы могут обращаться в ноль. Кроме того, символьное представление собственных векторов матрицы коэффициентов системы не единственно. В работе на примере исследуемой системы показано, что стандартные процедуры компьютерной алгебры отыскивают конкретные символьные представления собственных векторов, игнорируя существование других символьных представлений собственных векторов. В свою очередь предлагаемые системой компьютерной алгебры собственные векторы могут быть непригодны для построения численных алгоритмов на их основе, что продемонстрировано в работе. Авторами предложен алгоритм отыскания различных символьных представлений собственных векторов символьно заданных матриц. В работе рассматривается конкретная система дифференциальных уравнений, полученная при исследовании решений уравнений Максвелла, однако предложенный алгоритм исследования применим к произвольной системе с нормальной матрицей коэффициентов.