RU2597480C1 - СПОСОБ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ТРЕХМЕРНЫХ ТЕЛ В b-rep ПРЕДСТАВЛЕНИИ - Google Patents

СПОСОБ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ТРЕХМЕРНЫХ ТЕЛ В b-rep ПРЕДСТАВЛЕНИИ Download PDF

Info

Publication number
RU2597480C1
RU2597480C1 RU2015118397/08A RU2015118397A RU2597480C1 RU 2597480 C1 RU2597480 C1 RU 2597480C1 RU 2015118397/08 A RU2015118397/08 A RU 2015118397/08A RU 2015118397 A RU2015118397 A RU 2015118397A RU 2597480 C1 RU2597480 C1 RU 2597480C1
Authority
RU
Russia
Prior art keywords
faces
processing
graph
rep
dimensional bodies
Prior art date
Application number
RU2015118397/08A
Other languages
English (en)
Inventor
Роман Владимирович Лыгин
Дамир Рашидович Богров
Original Assignee
Общество с ограниченной ответственностью "КАДЭКС"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "КАДЭКС" filed Critical Общество с ограниченной ответственностью "КАДЭКС"
Priority to RU2015118397/08A priority Critical patent/RU2597480C1/ru
Application granted granted Critical
Publication of RU2597480C1 publication Critical patent/RU2597480C1/ru

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

Изобретение относится к области обработки трехмерных тел, а именно обработке трехмерных тел с использованием параллельных вычислений. Техническим результатом является уменьшение времени обработки трехмерных тел в B-Rep представлении. Способ обработки трехмерных тел в B-Rep представлении с использованием параллельных вычислений, структуру B-Rep представления преобразуют в граф зависимостей между гранями тела, предварительно формируя массивы зависимостей между гранями на основании информации о связности граней через дочерние элементы, при этом массивы зависимостей формируют в памяти по меньшей мере из идентификаторов граней и принадлежащих им вершин, а также идентификаторов вершин и граней, к которым принадлежит каждая вершина, после чего при необходимости оптимизируют граф, исключая из него дублирующие зависимости, а параллельные вычисления применяют к обработке граней в полученном графе, обрабатывая каждую последующую грань после обработки всех граней, предшествующих ей в графе. 4 табл., 7 ил.

Description

Область техники
Настоящее изобретение относится к области обработки трехмерных тел в B-Rep представлении, а именно обработке трехмерных тел с использованием параллельных вычислений.
Предшествующий уровень техники
Из существующего уровня техники известны технические решения «Parameterizing a 3d modeled object for tessellation» [Заявка на патент № US2014184599, з. 28.12.2012 г.] и «Tessellation of a Parameterized 3D Modeled Object», заявка на патент № US2014184598, з. 28.12.2012 г.]. Оба технических решения описывают способы обработки трехмерных моделей для решения задач построения сеток (триангуляции).
При этом для решения задачи триангуляции не возникает необходимости преобразования объектов внутри тела в B-Rep представлении, например, геометрических объектов (поверхностей, кривых, точек), используемых соответствующими топологическими объектами (гранями, ребрами, вершинами). Соответственно, указанные технические решения не могут быть применены к случаям, когда такие преобразования к телу в B-Rep представлении необходимо применить. Заявляемое изобретение адресует подобные случаи.
Сущность изобретения
Задачей, на решение которой направлено заявляемое изобретение, является ускорение обработки трехмерных тел в B-Rep представлении за счет использования параллельных вычислений. B-Rep представление описывается с помощью структуры элементов, связных между собой (вершин, ребер, граней и др.). В силу связности элементов между собой (например, в замкнутом теле каждое ребро разделяется двумя гранями, а каждая вершина разделяется как минимум двумя ребрами) эффективное использование параллельных вычислений сильно затруднено (по причине сильной зависимости по данным).
Данная задача решается посредством обработки трехмерных тел в B-Rep представлении с использованием параллельных вычислений. Структуру B-Rep представления преобразуют в граф зависимостей между гранями тела, предварительно формируя массивы зависимостей между гранями на основании информации о связности граней через дочерние элементы (вершины или ребра тела в B-Rep представлении). Отношение «зависимости» между гранями Fi и Fj обозначает требование, что грань Fj может быть обработана только после грани Fi. При этом массивы зависимостей формируют в памяти вычислительного устройства, используя по меньшей мере идентификаторы граней и принадлежащих им вершин, а также идентификаторы вершин и граней, к которым принадлежит каждая вершина. После чего при необходимости оптимизируют граф, исключая в нем дублирующие зависимости, а параллельные вычисления применяют к обработке граней в полученном графе, обрабатывая каждую последующую грань после обработки всех граней, предшествующих ей в графе.
Также граф зависимостей между гранями тела может быть представлен в форме таблиц.
Параллельные вычисления ведут с одновременным использованием как минимум двух вычислительных устройств. Для повышения эффективности способа при наличии свободных мощностей вычислительной техники соответствующее вычислительное устройство анализирует наличие граней, незадействованных в обработке в данный момент времени, и при получении положительного отклика начинает их обработку. Под вычислительным устройством понимают любое устройство, способное производить вычисления. Примерами вычислительных устройств могут служить центральный процессор компьютера, ядро центрального процессора, гипер-поток ядра процессора, ядра и гипер-потоки со-процессора или графического ускорителя, узлы вычислительного кластера и т.д. При этом параллельные вычисления могут быть использованы на любом уровне вычислительной техники, например, с использованием векторных инструкций процессора, многопоточного программирования, программирования на системах с распределенной памятью (кластерах), на системах с использованием со-процессоров и графических ускорителей, а также с использованием произвольных комбинаций вышеперечисленных способов.
Под памятью понимают любой вид физического устройства или среды для хранения данных на вычислительном устройстве, включая регистры и кэш процессора, динамическую память с произвольным доступом (DRAM), статическую память с произвольным доступом (SRAM), любые виды запоминающих устройств (например, HDD и SSD).
Технически результатом, обеспечиваемым приведенной совокупностью признаков, является уменьшение времени обработки трехмерных тел в B-Rep представлении.
Описанный способ может применяться для конвертации трехмерных тел между различными форматами, восстановления, исправления и прочего изменения геометрических данных в трехмерных телах. Также экспертам в предметной области очевидно его применение к иным вариантам использования для обработки трехмерных тел, например, для решения задач визуализации, построения сеток и др.
Краткое описание чертежей
Сущность изобретения поясняется рисунками
Рис. 1 - Тело, имеющее B-Rep представление (11). B-Rep (Boundary representation) - способ представления тела с помощью структуры данных, содержащей сведения о границах объема (вершинах, ребрах, гранях) и их соединении друг с другом [https://wap.ism-06-2.ru/shpora.php?razdel=5&id=402&].
Рис. 2 и 3 - B-Rep представление и его внутренняя структура. На рис. 2 и 3 использованы следующие обозначения:
V1, V2 - вершины;
E1, E2, E3 - ребра;
F1, F2, F3 - грани.
Рис. 4 - модель прямоугольного параллелепипеда в B-Rep представлении. На рис. 4 использованы следующие обозначения:
0, 1, …, 7 - вершины;
F0, F1,…, F5 - грани.
Рис. 5 и 6 - графы зависимостей граней тела, изображенного на рис. 4, полный и оптимизированный.
Рис.7 - пример фрагмента сложного графа зависимостей граней тела.
Подробное описание изобретения
Под элементами тела в B-Rep представлении (Рис. 2 и 3) понимаются грани, ребра, вершины. Элементы B-Rep представления упорядочены по иерархическому принципу (Рис. 3), где старшие элементы состоят из младших элементов. Например, каждая грань в рамках B-Rep представления состоит из ребер, а каждое ребро состоит из вершин. В зависимости от вида трехмерного тела иерархический принцип может применяться и к другим элементам B-Rep представления, таким как поверхности и кривые.
В качестве примера тела, иллюстрирующего применение способа, выбран прямоугольный параллелепипед (см. Рис. 4). Для тела в B-Rep представлении (Рис. 4) создаем набор элементов, составляющих данное представление и выстроенных по иерархическому принципу. Например, для тела в B-Rep представлении (Рис. 4) создаем массив вершин (V0-V7), массив граней (F0-F5), составляющих данное B-Rep представление (Рис. 4). Количество и содержание этих массивов зависит от конкретного трехмерного тела.
Затем одновременно создаем 2 таблицы:
1. Таблицу, содержащую номера всех граней и номера принадлежащих ей вершин (см. Табл. 1);
2. Таблицу, содержащую номера всех вершин и номера граней, к которым данная вершина принадлежит (см. Табл. 2).
F0 V0 V1 V2 V3
F1 V4 V1 V5 V2
F2 V6 V5 V3 V2
F3 V7 V0 V4 V1
F4 V7 V6 V0 V3
F5 V7 V6 V5 V4
Табл.1. Соответствие грани и номеров принадлежащих ей вершин
V0 F0 F3 F4
V1 F0 F1 F3
V2 F0 F1 F2
V3 F0 F2 F4
V4 F1 F3 F5
V5 F1 F2 F5
V6 F2 F4 F5
V7 F3 F4 F5
Табл.2. Соответствие вершины и номеров граней, к которым принадлежит данная вершина
После чего, используя данные таблиц (Табл. 1 и 2), формируем таблицу зависимостей между гранями (Табл. 3). Эта таблица выражает зависимость между «предшествующей» гранью (левый столбец) и «последующими» гранями (правый столбец). Термины «предшествующий» и «последующий» указывают на то, что любая «последующая» грань может быть обработана только после обработки всех «предшествующих» граней.
F0 F4 F3 F2 F1
F1 F5 F3 F2
F2 F5 F4
F3 F5 F4
F4 F5
F5
Табл.3. Таблица зависимостей между гранями
Далее для тела в B-Rep представлении формируем граф зависимостей граней, в котором ребра обозначают отношение зависимости «предшествующая» - «последующая» грань. На Рис.5 хорошо видно, что такой граф содержит избыточные ребра, например, между гранями F0 и F4 существуют три пути, соединяющих их: F0-F2-F4, F0-F3-F4 и F0-F4. Это обусловлено тем, что некоторые грани одновременно связаны с несколькими «предшествующими» гранями. Эта избыточность может увеличить время обработки тела, т.к. потребуются дополнительные проверки условия того, что все «предшествующие» грани были обработаны до начала обработки каждой «последующей» грани. Соответственно для того, чтобы ускорить процесс обработки, можно оптимизировать граф, то есть сократить зависимость грани от «предшествующих» ей граней до минимума. Оптимизируем граф, исключая для каждой грани те «предшествующие» грани, которые являются «предшествующими» для других «предшествующих» граней (см. Табл.4).
F0 F1
F1 F3 F2
F2 F4
F3 F4
F4 F5
F5
Табл.4. Таблица зависимостей между гранями
В примере выше, для F4 исключаем F0 как «предшествующую», т.к. F0 является «предшествующей» для F2 и F3, которые сами являются «предшествующими» к F4. На основании таблицы формируем оптимизированный граф (Рис. 6). После чего начинаем обработку в соответствии с оптимизированным графом. После завершения обработки F1 и при переходе к обработке «последующих» граней F2 и F3 (Рис. 6) возникает возможность применения параллельных вычислений в силу независимости обработки F2 и F3 друг от друга. Для повышения эффективности параллельных вычислений может быть использован способ, называемый «воровством задач» (от англ. “work stealing”).
Этот принцип может быть пояснен на следующем примере. Для больших сложных B-Rep тел ветвления в графе зависимостей (когда от одной «предшествующей» грани зависит множество «последующих») могут возникнуть произвольным образом. На рис. 7 приведен пример более сложного графа зависимостей со множеством ветвлений. Обязательное использование параллелизма при каждом таком ветвлении породило бы создание избыточного количества ВУ (например, количество вычислительных потоков, большее, чем количество ядер в центральном процессоре). Это привело бы к замедлению, а не ускорению вычислений, что, очевидно, не эффективно. Вместо такого «форсированного» параллелизма используют способ «воровства задач». Концепция «воровства задач» заключается в том, что каждое ВУ при завершении обработки своих имеющихся элементов (например, граней) пытается найти другие необработанные элементы. При этом может происходить отбирание («воровство») элементов у другого вычислительного устройства, над которыми оно уже начало работать. В заявленном способе реализация данной концепции состоит в том, что при обработке элементов B-Rep представления (граней) каждое работающее ВУ анализирует наличие элементов, незадействованных в обработке в данный момент времени, и при получении положительного отклика начинает обработку соответствующих элементов.
В зависимости от особенностей B-Rep представления или вычислительных алгоритмов реализация способа может быть основана на информации о связности граней посредством ребер, а не вершин.
Таким образом, данное изобретение ускоряет процесс обработки трехмерных тел в B-Rep представлении за счет использования параллельной обработки информации.

Claims (1)

  1. Способ обработки трехмерных тел в B-Rep представлении с использованием параллельных вычислений, отличающийся тем, что структуру B-Rep представления преобразуют в граф зависимостей между гранями тела, предварительно формируя массивы зависимостей между гранями на основании информации о связности граней через дочерние элементы, при этом массивы зависимостей формируют в памяти по меньшей мере из идентификаторов граней и принадлежащих им вершин, а также идентификаторов вершин и граней, к которым принадлежит каждая вершина, после чего при необходимости оптимизируют граф, исключая из него дублирующие зависимости, а параллельные вычисления применяют к обработке граней в полученном графе, обрабатывая каждую последующую грань после обработки всех граней, предшествующих ей в графе.
RU2015118397/08A 2015-05-18 2015-05-18 СПОСОБ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ТРЕХМЕРНЫХ ТЕЛ В b-rep ПРЕДСТАВЛЕНИИ RU2597480C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2015118397/08A RU2597480C1 (ru) 2015-05-18 2015-05-18 СПОСОБ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ТРЕХМЕРНЫХ ТЕЛ В b-rep ПРЕДСТАВЛЕНИИ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015118397/08A RU2597480C1 (ru) 2015-05-18 2015-05-18 СПОСОБ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ТРЕХМЕРНЫХ ТЕЛ В b-rep ПРЕДСТАВЛЕНИИ

Publications (1)

Publication Number Publication Date
RU2597480C1 true RU2597480C1 (ru) 2016-09-10

Family

ID=56892939

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015118397/08A RU2597480C1 (ru) 2015-05-18 2015-05-18 СПОСОБ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ТРЕХМЕРНЫХ ТЕЛ В b-rep ПРЕДСТАВЛЕНИИ

Country Status (1)

Country Link
RU (1) RU2597480C1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2647627C1 (ru) * 2016-11-08 2018-03-16 Федеральное государственное бюджетное учреждение науки Федеральный исследовательский Центр "Карельский научный центр Российской академии наук" Способ управления памятью компьютерной системы

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2011149310A (ru) * 2009-05-04 2013-06-10 Турбомека Структура данных для перечня деталей
US20140136151A1 (en) * 2012-11-09 2014-05-15 Gary Arnold Crocker Methods and Systems for Generating Continuous Surfaces from Polygonal Data
US20140184599A1 (en) * 2012-12-28 2014-07-03 Dassault Systemes Parameterizing a 3d modeled object for tessellation
US8994724B2 (en) * 2010-12-17 2015-03-31 IntegrityWare, Inc. Methods and systems for generating continuous surfaces from polygonal data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2011149310A (ru) * 2009-05-04 2013-06-10 Турбомека Структура данных для перечня деталей
US8994724B2 (en) * 2010-12-17 2015-03-31 IntegrityWare, Inc. Methods and systems for generating continuous surfaces from polygonal data
US20140136151A1 (en) * 2012-11-09 2014-05-15 Gary Arnold Crocker Methods and Systems for Generating Continuous Surfaces from Polygonal Data
US20140184599A1 (en) * 2012-12-28 2014-07-03 Dassault Systemes Parameterizing a 3d modeled object for tessellation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2647627C1 (ru) * 2016-11-08 2018-03-16 Федеральное государственное бюджетное учреждение науки Федеральный исследовательский Центр "Карельский научный центр Российской академии наук" Способ управления памятью компьютерной системы

Similar Documents

Publication Publication Date Title
KR20180012439A (ko) 회선 신경망에서 가속기 및 이의 동작 방법
US9158719B2 (en) Heterogeneous parallel systems for accelerating simulations based on discrete grid numerical methods
US20190122414A1 (en) Method and apparatus for generating virtual object
US20150221130A1 (en) Mesh quality improvement in computer aided engineering
US11107187B2 (en) Graph upscaling method for preserving graph properties
Chen et al. Localizing the delaunay triangulation and its parallel implementation
US20210406432A1 (en) Calculation method, medium and system for real-time physical engine enhancement based on neural network
US10083264B1 (en) Systems and methods for implicit surface modeling
Chao et al. Improved hybrid bounding box collision detection algorithm
RU2597480C1 (ru) СПОСОБ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ТРЕХМЕРНЫХ ТЕЛ В b-rep ПРЕДСТАВЛЕНИИ
US20230145125A1 (en) Computer-readable recording medium storing information processing program, information processing apparatus, and information processing method
Kuhn et al. Incremental division of very large point clouds for scalable 3d surface reconstruction
Roberge et al. Comparison of parallel particle swarm optimizers for graphical processing units and multicore processors
Guo et al. A 3D Surface Reconstruction Method for Large‐Scale Point Cloud Data
RU2600532C2 (ru) Способ конвертации трехмерных моделей с использованием параллельной обработки информации
CN115409678A (zh) 一种对神经网络的算子进行融合的方法和相关产品
Zhang et al. Expanding the edge: Enabling efficient winograd cnn inference with deep reuse on edge device
Torelli et al. A high performance 3d exact Euclidean distance transform algorithm for distributed computing
TWI846306B (zh) 三維圖檔儲存方法、三維圖檔重建方法以及三維列印方法
CN115880458B (zh) 网格布尔运算方法、装置、电子设备和存储介质
CN117893712B (zh) 一种表面结构网格生成方法和装置
Tarasov Discrete maps with distributed memory fading parameter
Wang et al. An improved collision detection algorithm based on GPU
CN118642863B (zh) Spark框架下GPU使能的多层次张量CP分解分布式并行加速方法
US20240086582A1 (en) Distributed-memory parallel processing of finite elements based on contact pair splitting

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20200519

NF4A Reinstatement of patent

Effective date: 20210316