Ведутся технические работы. Это может временно повлиять на скорость работы сайта. Приносим извинения за неудобства и благодарим за ваше понимание!
Чем сложнее научная или инженерная задача, тем большую роль в ее решении играет компьютерное моделирование. Это правило почти всегда подтверждается практикой, и современная физика — не исключение. Работающий термоядерный реактор, выдающий хотя бы столько же энергии, сколько было затрачено на его запуск и функционирование, — Святой Грааль для современных ученых. И подступиться к нему мешает невероятно высокая вычислительная сложность моделей, описывающих поведение плазмы в такой установке.
А учитывая стоимость любых стеллаторов и токамаков, при проведении на них экспериментов крайне желательно избежать ошибок. И время дорого, и повреждений установок лучше не допускать. Поэтому ценность моделей тоже повышается: ученым проще и безопаснее сначала проверять свои гипотезы в симуляциях. Получается, одним из ограничивающих факторов при продвижении прогресса в области управляемой термоядерной реакции служит эффективность моделей. И пока она далека от идеала: для полномасштабных расчетов используют суперкомпьютеры, а приближенные результаты получают в результате сотен часов работы обычных ПК.
Ситуацию попробовал исправить докторант Технического университета Эйндховена (Нидерланды) Аарон Хо (Aaron Ho). Он работает в группе по изучению термоядерных реакций департамента прикладной физики. Как пишет портал SciTechDaily, Хо недавно защитил докторскую диссертацию, посвященную применению искусственного интеллекта для моделирования поведения плазмы в токамаках. Созданный им алгоритм уже включен в мощный набор программных инструментов физиков-ядерщиков под названием JINTRAC.
Идея молодого ученого заключается в замене кода, описывающего модель турбулентности пониженного порядка, на нейросеть. Он обучил ИИ на нескольких наборах данных — входных, с реальных научных установок, и результатах, полученных от существующего инструмента QuaLiKiz, предсказывающего движение плазмы в токомаках за счет микротурбулентностей. Поскольку это главный механизм переноса в подобных устройствах, важны точность и скорость работы модели. После обучения нейросеть интегрировали в QuaLiKiz и проверили на новых данных, сравнив со старым алгоритмом.
Вышло более чем впечатляюще. Обычный QuaLiKiz выполнил задачу на 16 вычислительных ядрах за 217 часов, а оснащенный ИИ — на одном ядре и за два часа. То есть даже без учета разницы в количестве необходимых для работы модели процессоров ускорение получилось более чем в сто раз. А если оценивать общую ресурсоемкость, разница выходит на порядок больше.
Но у метода, естественно, есть ограничения, ведь ничего не бывает бесплатно. Точность новой модели во время проверки была ниже: результаты между «нейросетевым» и обычным QuaLiKiz различались примерно на 10%. В этом моменте есть место для улучшений, но 100% точности с искусственным интеллектом достичь принципиально невозможно. С другой стороны, сам по себе QuaLiKiz применяется для упрощенного моделирования, так как использует приближенные вычисления. Поэтому в описываемом случае скорость важнее, а для более точных вычислений есть другие инструменты.
( ! ) Warning: Invalid argument supplied for foreach() in /home/domains/malitikov.ru/public_html/wp-content/themes/malitikov/single.php on line 44 | ||||
---|---|---|---|---|
Call Stack | ||||
# | Time | Memory | Function | Location |
1 | 0.0000 | 350408 | {main}( ) | .../index.php:0 |
2 | 0.0000 | 350688 | require( '/home/domains/malitikov.ru/public_html/wp-blog-header.php ) | .../index.php:17 |
3 | 0.1841 | 8488576 | require_once( '/home/domains/malitikov.ru/public_html/wp-includes/template-loader.php ) | .../wp-blog-header.php:19 |
4 | 0.1874 | 8512912 | include( '/home/domains/malitikov.ru/public_html/wp-content/themes/malitikov/single.php ) | .../template-loader.php:106 |
( ! ) Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in /home/domains/malitikov.ru/public_html/wp-includes/class-wpdb.php on line 2322 | ||||
---|---|---|---|---|
Call Stack | ||||
# | Time | Memory | Function | Location |
1 | 0.0000 | 350408 | {main}( ) | .../index.php:0 |
2 | 0.0000 | 350688 | require( '/home/domains/malitikov.ru/public_html/wp-blog-header.php ) | .../index.php:17 |
3 | 0.1841 | 8488576 | require_once( '/home/domains/malitikov.ru/public_html/wp-includes/template-loader.php ) | .../wp-blog-header.php:19 |
4 | 0.1874 | 8512912 | include( '/home/domains/malitikov.ru/public_html/wp-content/themes/malitikov/single.php ) | .../template-loader.php:106 |
5 | 0.4305 | 22798408 | WP_Query->__construct( $query = ['post_type' => 'post', 'post_status' => 'publish', 'fields' => 'ids', 'posts_per_page' => -1, 'no_found_rows' => TRUE, 'orderby' => 'none'] ) | .../single.php:65 |
6 | 0.4305 | 22798408 | WP_Query->query( $query = ['post_type' => 'post', 'post_status' => 'publish', 'fields' => 'ids', 'posts_per_page' => -1, 'no_found_rows' => TRUE, 'orderby' => 'none'] ) | .../class-wp-query.php:4081 |
7 | 0.4305 | 22798408 | WP_Query->get_posts( ) | .../class-wp-query.php:3949 |
8 | 0.4310 | 22810272 | wpdb->get_col( $query = 'SELECT wp_posts.ID\n\t\t\t\t\t FROM wp_posts \n\t\t\t\t\t WHERE 1=1 AND wp_posts.post_type = \'post\' AND ((wp_posts.post_status = \'publish\'))\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t ', $x = ??? ) | .../class-wp-query.php:3300 |
9 | 0.4310 | 22810272 | wpdb->query( $query = 'SELECT wp_posts.ID\n\t\t\t\t\t FROM wp_posts \n\t\t\t\t\t WHERE 1=1 AND wp_posts.post_type = \'post\' AND ((wp_posts.post_status = \'publish\'))\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t ' ) | .../class-wpdb.php:3107 |
10 | 4.5714 | 700751200 | mysqli_fetch_object( $result = class mysqli_result { public $current_field = 0; public $field_count = 1; public $lengths = [0 => 7]; public $num_rows = 1517174; public $type = 0 } ) | .../class-wpdb.php:2322 |