arma-slides-ru.org (46229B)
1 #+TITLE: Имитационное моделирование нерегулярного волнения для программ динамики морских объектов 2 #+AUTHOR: Иван Ганкевич 3 #+DATE: Санкт-Петербург, 2018 4 #+LANGUAGE: ru 5 #+LATEX_CLASS: beamer 6 #+LATEX_CLASS_OPTIONS: [14pt,aspectratio=169] 7 #+LATEX_HEADER_EXTRA: \input{slides-titlepage-ru} 8 #+LATEX_HEADER_EXTRA: \input{slides-preamble} 9 #+BEAMER_THEME: SaintPetersburg 10 #+OPTIONS: todo:nil title:nil ':t toc:nil H:2 11 #+STARTUP: indent 12 #+PROPERTY: header-args:R :results graphics :exports results :eval no-export 13 14 #+begin_export latex 15 \setbeamertemplate{title page}{% 16 \centering% 17 \vskip1cm\spbuInsertField{title}% 18 \ifx\insertsubtitle\empty\else% 19 \vskip0.5\baselineskip% 20 \spbuInsertField{subtitle}% 21 \fi% 22 \vfill\spbuInsertField{author}% 23 \vfill\spbuInsertField{institute}% 24 \vfill\inserttitlegraphic% 25 \vfill\spbuInsertField{date}% 26 } 27 \setbeamerfont{block title}{size=\small} 28 \setbeamerfont{note page}{size=\footnotesize} 29 \setjobnamebeamerversion{arma-slides-ru} 30 \mode* 31 #+end_export 32 33 * Введение 34 :PROPERTIES: 35 :BEAMER_env: ignoreheading 36 :END: 37 38 ** Титульный лист 39 :PROPERTIES: 40 :BEAMER_env: fullframe 41 :BEAMER_act: <presentation> 42 :BEAMER_opt: label=slide-title 43 :END: 44 45 #+beamer: \maketitle 46 47 ** Notes 48 :PROPERTIES: 49 :BEAMER_env: ignoreheading 50 :END: 51 52 #+beamer: \spbuSlide{slide-title} 53 54 Здравствуйте, уважаемые члены совета, коллеги и гости. Меня зовут Иван Ганкевич. 55 Моя диссертация посвящена имитационному моделированию морского волнения. 56 Диссертация выполнена под руководством д.т.н.\nbsp{}Дегтярева Александра 57 Борисовича. 58 59 ** Постановка задачи 60 :PROPERTIES: 61 :BEAMER_act: <presentation> 62 :BEAMER_opt: label=slide-problem 63 :END: 64 65 Разработать 66 - трехмерную имитационную модель морского волнения, 67 - метод вычисления поля давлений под взволнованной поверхностью, 68 - программный комплекс для систем с общей и распределенной памятью, 69 которые являются /альтернативами/ аналогам, разработанным в рамках 70 линейной теории волн. 71 72 ** Notes 73 :PROPERTIES: 74 :BEAMER_env: ignoreheading 75 :END: 76 77 #+beamer: \spbuSlide{slide-problem} 78 79 Цель исследования заключалась в изучении и разработке математических моделей и 80 численных методов, которые бы позволили выйти за рамки линейной теории волн в 81 задаче имитационного моделирования морского волнения и стать альтернативами 82 моделям и методам, основанных на этой теории. 83 84 В рамках данного исследования была разработана 85 - трехмерная имитационная математическая модель морского волнения, 86 - метод вычисления поля давлений под взволнованной морской поверхностью и 87 - программный комплекс, реализующий модель и метод, для систем с общей и 88 распределенной памятью. 89 90 * Трехмерная модель АРСС 91 92 ** Трехмерная модель АРСС 93 :PROPERTIES: 94 :BEAMER_act: <presentation> 95 :BEAMER_opt: label=slide-arma 96 :END: 97 98 \begin{equation*} 99 \rectemph{zeta1}{\zeta_{i,j,k}} = 100 \sum\limits_{l=0}^{p_1} 101 \sum\limits_{m=0}^{p_2} 102 \sum\limits_{n=0}^{p_3} 103 \rectemph{phi}{\Phi_{l,m,n}} \rectemph{zeta2}{\zeta_{i-l,j-m,k-n}} 104 + 105 \sum\limits_{l=0}^{q_1} 106 \sum\limits_{m=0}^{q_2} 107 \sum\limits_{n=0}^{q_3} 108 \rectemph{theta}{\Theta_{l,m,n}} \rectemph{eps}{\epsilon_{i-l,j-m,k-n}} 109 \end{equation*} 110 111 #+begin_export latex 112 \begin{tikzpicture}[remember picture,overlay] 113 \node[fill=none,baseline,anchor=south west,xshift=1.1cm,yshift=-1.75cm] 114 (zetaLabel) at (current page.north west) 115 {\scriptsize{}подъем взволнованной поверхности}; 116 \node[fill=none,anchor=south east,xshift=-2cm,yshift=-1.75cm] 117 (epsLabel) at (current page.north east) 118 {\scriptsize{}белый шум}; 119 \node[fill=none,baseline,anchor=north west,below=of phi,yshift=0.2cm] 120 (phiLabel) 121 {\scriptsize{}коэффициенты АР}; 122 \node[fill=none,baseline,anchor=north west,below=of theta,yshift=0.2cm] 123 (thetaLabel) 124 {\scriptsize{}коэффициенты СС}; 125 \path[->,thick] (zetaLabel.south -| zeta1.north) edge (zeta1.north); 126 \path[->,thick] (zetaLabel.south -| zeta2.north west) 127 edge [transform canvas={xshift=2mm}] 128 (zeta2.north west); 129 \path[->,thick] (epsLabel.south -| eps.north west) 130 edge [transform canvas={xshift=2mm}] 131 (eps.north west); 132 \path[->,thick] (phiLabel.north -| phi.south west) 133 edge [transform canvas={xshift=2.5mm}] 134 (phi.south west); 135 \path[->,thick] (thetaLabel.north -| theta.south west) 136 edge [transform canvas={xshift=2.5mm}] 137 (theta.south west); 138 \end{tikzpicture} 139 #+end_export 140 141 #+BEAMER: \vspace{0.5cm}\pause 142 143 #+begin_src dot :exports results :file build/arma-pipeline-ru.pdf 144 digraph G { 145 146 node [ 147 fontname="Open Sans", 148 fontsize=10, 149 margin="0.055,0", 150 shape=box, 151 fillcolor="#E5E6E5", 152 style="filled", 153 height="0.37", 154 color="#404040" 155 ] 156 graph [nodesep="0.25",ranksep="0.30",rankdir="LR" margin=0] 157 edge [arrowsize=0.66,color="#404040"] 158 bgcolor="#F5F6F5" 159 160 acf [label="АКФ"] 161 yule_walker_equations [label="Уравнения\nЮла—Уокера"] 162 nonlinear_equations [label="Нелинейные\nуравнения"] 163 ar_process [label="Модель\nАР"] 164 ma_process [label="Модель\nСС"] 165 arma_process [label="Модель\nАРСС"] 166 167 acf->yule_walker_equations->ar_process->arma_process 168 acf->nonlinear_equations->ma_process->arma_process 169 170 } 171 #+end_src 172 173 #+RESULTS: 174 [[file:build/arma-pipeline-ru.pdf]] 175 176 ** Notes 177 :PROPERTIES: 178 :BEAMER_env: ignoreheading 179 :END: 180 181 #+beamer: \spbuSlide{slide-arma<2>} 182 183 В качестве имитационной модели в данной работе используется модель авторегрессии 184 скользящего среднего (сокращенно, модель АРСС). Эта модель применяется в 185 статистике для анализа и прогнозирования одномерных скалярно- и векторно-значных 186 временных рядов, в данной же работе ее трехмерный аналог адаптирован для 187 воспроизведения значений подъема взволнованной морской поверхности в дискретные 188 моменты времени. Имитация морского волнения с помощью одномерной модели АРСС 189 была изучена в работах Рожкова, Гургенидзе, Трапезникова, Бухановского, Спаноса 190 и Зельдина. 191 192 Основное уравнение трехмерной модели АРСС представлено на слайде. Параметрами 193 являются 194 - дисперсия белого шума, имеющего нормальное распределение, 195 - коэффициенты авторегрессии и 196 - коэффициенты скользящего среднего. 197 198 Параметры модели определяются из автоковариационной функции взволнованной 199 морской поверхности путем решения соответствующих систем уравнений. Для 200 получения коэффициентов авторегрессии решается система линейных алгебраических 201 уравнений Юла---Уокера стандартным методом, а для получения коэффициентов 202 скользящего среднего решается система нелинейных уравнений методом простой 203 итерации. 204 205 Основным отличием модели АРСС от линейных аналогов является 206 - использование трехмерной автоковариационной функции вместо двухмерных 207 частотно-направленных спектров морского волнения и 208 - нефизическая природа модели, поскольку ее формулы не выводятся из законов 209 сохранения для морского волнения. 210 Обсудим каждое из них по порядку. 211 212 ** АКФ морской поверхности 213 :PROPERTIES: 214 :BEAMER_act: <presentation> 215 :BEAMER_OPT: label=slide-acf 216 :END: 217 218 *** Columns 219 :PROPERTIES: 220 :BEAMER_env: columns 221 :END: 222 223 **** Column 1 224 :PROPERTIES: 225 :BEAMER_col: 1.00 226 :END: 227 228 #+latex: \vspace{-0.5cm} 229 #+begin_src dot :exports results :file build/acf-pipeline-ru.pdf 230 digraph G { 231 232 node [ 233 fontname="Open Sans", 234 fontsize=10, 235 margin="0.055,0", 236 shape=box, 237 fillcolor="#E5E6E5", 238 style="filled", 239 color="#404040" 240 ] 241 graph [nodesep="0.25",ranksep="0.20",rankdir="TB" margin=0] 242 edge [arrowsize=0.66,color="#404040"] 243 bgcolor="#F5F6F5" 244 245 function [label="Формула\nповерхности волны",height="0.40"] 246 discrete_function [label="Дискретная\nповерхность волны",height="0.40"] 247 field_data [label="Натурные\nданные",width="1.1",height="0.40"] 248 theorem [label="Теорема Винера—Хинчина",height="0.20"] 249 acf [label="АКФ",height="0.20"] 250 251 function->theorem 252 discrete_function->theorem 253 field_data->theorem 254 theorem->acf 255 256 } 257 #+end_src 258 259 #+RESULTS: 260 [[file:build/acf-pipeline-ru.pdf]] 261 262 *** Separator 263 :PROPERTIES: 264 :BEAMER_env: ignoreheading 265 :END: 266 267 *** Columns 268 :PROPERTIES: 269 :BEAMER_env: columns 270 :BEAMER_opt: T 271 :END: 272 273 **** Column 1 274 :PROPERTIES: 275 :BEAMER_col: 0.30 276 :END: 277 278 #+header: :width 1.7 :height 1.2 :bg #F5F6F5 :font sans 279 #+begin_src R :file build/acf-propagating-plain-wave-ru.pdf 280 source(file.path("R", "common.R")) 281 par(mar=c(0,0.5,0,0)) 282 df <- data.frame(t=rep(NA,0), x=rep(NA,0), y=rep(NA,0), z=rep(NA,0)) 283 n <- 20 284 grid <- seq(1, n) 285 alpha <- 2.13975 286 beta <- 0.77341 287 gamm <- 0.549017 288 for (i in grid) { 289 for (j in grid) { 290 x <- i/(n-1) 291 y <- j/(n-1) 292 z <- gamm * exp(-alpha*(x+y)) * cos(beta*(x+y)) 293 df[nrow(df) + 1,] <- c(0,i,j,z) 294 } 295 } 296 arma.wavy_plot(df, 0, zlim=c(0,0.5), expand=0.5, border=NA) 297 #+end_src 298 299 #+caption: Плоская волна 300 #+RESULTS: 301 [[file:build/acf-propagating-plain-wave-ru.pdf]] 302 303 304 **** Column 2 305 :PROPERTIES: 306 :BEAMER_col: 0.35 307 :END: 308 309 #+header: :width 1.7 :height 1.2 :bg #F5F6F5 :font sans 310 #+begin_src R :file build/acf-standing-plain-wave-ru.pdf 311 source(file.path("R", "common.R")) 312 par(mar=c(0,0.5,0,0)) 313 df <- data.frame(t=rep(NA,0), x=rep(NA,0), y=rep(NA,0), z=rep(NA,0)) 314 n <- 20 315 grid <- seq(1, n) 316 alpha <- 2.31906 317 beta <- -5.49873 318 gamm <- 0.0680413 319 for (i in grid) { 320 for (j in grid) { 321 x <- i/(n-1) 322 y <- j/(n-1) 323 z <- gamm * exp(-alpha*(x+y)) * cos(beta*x) * cos(beta*y) 324 df[nrow(df) + 1,] <- c(0,i,j,z) 325 } 326 } 327 arma.wavy_plot(df, 0, zlim=c(-0.05,0.05), expand=0.5, border=NA) 328 #+end_src 329 330 #+caption: Плоская стоячая волна 331 #+RESULTS: 332 [[file:build/acf-standing-plain-wave-ru.pdf]] 333 334 **** Column 3 335 :PROPERTIES: 336 :BEAMER_col: 0.30 337 :END: 338 339 #+header: :width 1.7 :height 1.2 :bg #F5F6F5 :font sans 340 #+begin_src R :file build/acf-propagating-stokes-wave-ru.pdf 341 source(file.path("R", "common.R")) 342 par(mar=c(0,0.5,0,0)) 343 df <- data.frame(t=rep(NA,0), x=rep(NA,0), y=rep(NA,0), z=rep(NA,0)) 344 n <- 40 345 alpha <- 0.5 346 grid <- seq(1, n) 347 k <- 0.77341 348 t <- 0 349 omega <- 0.3 350 a <- 1.5 351 for (i in grid) { 352 for (j in grid) { 353 x <- i/(n-1) 354 y <- j/(n-1) 355 theta <- k*(x + y) - omega*t 356 z <- a * exp(-alpha*(x+y)) * (cos(theta) + 0.5*k*a*cos(2*theta) + (3/8)*(k*a*k*a)*cos(3*theta)) 357 df[nrow(df) + 1,] <- c(0,i,j,z) 358 } 359 } 360 arma.acf_plot(df, 0, zlim=c(0,1.0), expand=0.5, border=NA) 361 #+end_src 362 363 #+caption: Волна Стокса 364 #+RESULTS: 365 [[file:build/acf-propagating-stokes-wave-ru.pdf]] 366 367 ** Notes 368 :PROPERTIES: 369 :BEAMER_env: ignoreheading 370 :END: 371 372 #+beamer: \spbuSlide{slide-acf} 373 374 Одним из основных отличий модели АРСС от линейных аналогов является 375 использование автоковариационной функции вместо частотно-направленных спектров 376 морского волнения, что позволяет получить ряд преимуществ. Автоковариационная 377 функция включает в себя не только две пространственные, но и временную 378 компоненту, что позволяет моделировать форму волны, а не только частоту и 379 направление движения. Посредством теоремы Винера---Хинчина автоковариационная 380 функция легко вычисляется аналитически из явной формулы взволнованной 381 поверхности или численно из дискретно заданной взволнованной поверхности или 382 натурных данных. Модель способна воспроизводить плоские волны, волны Стокса и 383 нерегулярное волнение, автоковариационные функции которых показаны на слайде. 384 385 ** Верификация модели АРСС 386 :PROPERTIES: 387 :BEAMER_act: <presentation> 388 :BEAMER_OPT: label=slide-arma-verification 389 :END: 390 391 *** Стоячие волны 392 :PROPERTIES: 393 :BEAMER_col: 0.47 394 :BEAMER_opt: T 395 :END: 396 397 #+latex: \vspace{-1cm} 398 #+header: :width 2.7 :height 2.7 :bg #F5F6F5 :font sans 399 #+begin_src R :file build/standing-wave-qqplots-slides-ru.pdf 400 source(file.path("R", "common.R")) 401 par(pty="s", mfrow=c(2, 2), mar=c(1,1,1,0), mgp=c(3,0.3,0), cex=0.6, fg='black', col='navy') 402 arma.qqplot_grid_adj( 403 file.path("build", "arma-benchmarks", "verification-orig", "standing_wave"), 404 c("elevation", "heights_y", "lengths_y", "periods"), 405 c("подъем", "высота", "длина", "период"), 406 0.1, 407 xlab="x", 408 ylab="y", 409 tck=0.04 410 ) 411 #+end_src 412 413 #+caption: Стоячие волны 414 #+RESULTS: 415 [[file:build/standing-wave-qqplots-slides-ru.pdf]] 416 417 418 *** Прогрессивные волны 419 :PROPERTIES: 420 :BEAMER_col: 0.47 421 :BEAMER_opt: T 422 :END: 423 424 #+latex: \vspace{-1cm} 425 #+header: :width 2.7 :height 2.7 :bg #F5F6F5 :font sans 426 #+begin_src R :file build/propagating-wave-qqplots-slides-ru.pdf 427 source(file.path("R", "common.R")) 428 par(pty="s", mfrow=c(2, 2), mar=c(1,1,1,0), mgp=c(3,0.3,0), cex=0.6, col='navy') 429 arma.qqplot_grid_adj( 430 file.path("build", "arma-benchmarks", "verification-orig", "propagating_wave"), 431 c("elevation", "heights_y", "lengths_y", "periods"), 432 c("подъем", "высота", "длина", "период"), 433 0.1, 434 xlab="x", 435 ylab="y", 436 tck=0.04 437 ) 438 #+end_src 439 440 #+caption: Прогрессивные волны 441 #+RESULTS: 442 [[file:build/propagating-wave-qqplots-slides-ru.pdf]] 443 444 445 ** Notes 446 :PROPERTIES: 447 :BEAMER_env: ignoreheading 448 :END: 449 450 #+beamer: \spbuSlide{slide-arma-verification} 451 452 Другим основным отличием модели АРСС от линейных аналогов является ее 453 нефизическая природа. Формулы модели не выводятся из физических законов 454 сохранения и модель неспособна воспроизводить индивидуальные волны. Вместо этого 455 воспроизводится взволнованная морская поверхность как единое целое, 456 распределения интегральных характеристик которой совпадают с реальными. 457 458 На слайде представлены спрямленные диаграммы (quantile-quantile plots) 459 распределений различных параметров волн. Чем ближе точки расположены к прямой 460 линии, тем выше степень совпадения распределений. Как видно из графиков, 461 распределения параметров прогрессивных волн почти полностью совпадает с 462 реальным, отличаясь лишь на хвостах, где размер выборки невелик. Распределения 463 параметров стоячих волн имеют большее расхождение на хвостах, ввиду отсутствия 464 надежных натурных данных для такого типа волн. 465 466 В работах Бухановского, Дегтярева и Рида показано, что АРСС воспроизводит 467 условные математическое ожидание и дисперсию высот и длин волн, которые 468 изначально не учитывались при моделировании. Также воспроизводится дисперсионное 469 соотношение. 470 471 ** Моделирование асимметричности :noexport: 472 :PROPERTIES: 473 :BEAMER_act: <presentation> 474 :END: 475 476 #+begin_src dot :exports results :file build/slides-nit-pipeline-ru.pdf 477 digraph G { 478 479 node [fontname="Open Sans",fontsize=10,margin="0.055,0",shape=box,fillcolor="#E5E6E5",style="filled",height="0.37"] 480 graph [nodesep="0.55",ranksep="0.30",rankdir="TB",margin=0,splines=ortho] 481 edge [fontname="Open Sans",fontsize=10,arrowsize=0.66] 482 bgcolor="#F5F6F5" 483 484 subgraph step1 { 485 rank="same" 486 acf [label="АКФ"] 487 zeta [label="Поверхность"] 488 } 489 490 subgraph step2 { 491 rank="same" 492 acf_tr [label="АКФ'",fillcolor="#E5C6C5"] 493 zeta_tr [label="Поверхность'",fillcolor="#E5C6C5"] 494 } 495 496 acf->zeta [color=invis] 497 acf->acf_tr [label=" Разложение в ряд\l по полиномам Эрмита\l"] 498 acf_tr->zeta_tr 499 zeta_tr->zeta [label="Преобразование\lаппликат\l"] 500 501 } 502 #+end_src 503 504 #+RESULTS: 505 [[file:build/slides-nit-pipeline-ru.pdf]] 506 507 #+header: :width 4 :height 1.5 :bg #F5F6F5 :font sans 508 #+begin_src R :file build/slides-nit-ru.pdf 509 source(file.path("R", "nonlinear.R")) 510 par(mar=c(2,2,0.3,0.1),cex=0.7,mgp=c(3,0.3,0)) 511 args <- list( 512 graphs=c('Гауссово', 'РГШ', 'АНР'), 513 linetypes=c('solid', 'dashed', 'dotted'), 514 axis=list(tck=-0.04), 515 legend="bottom" 516 ) 517 args$title <- NULL 518 arma.plot_nonlinear(file.path("build", "nit-standing"), args) 519 #+end_src 520 521 #+RESULTS: 522 [[file:build/slides-nit-ru.pdf]] 523 524 525 * Поле давлений под дискретно заданной взволнованной поверхностью 526 527 ** Уравнения для потенциала скорости 528 :PROPERTIES: 529 :BEAMER_act: <presentation> 530 :BEAMER_opt: label=slide-potential-flow 531 :END: 532 533 #+beamer: \footnotesize 534 #+begin_export latex 535 \begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}% 536 \vspace{-\baselineskip}% 537 \begin{align*}% 538 & \nabla^2\phi = 0 539 & \text{уравнение неразрывности} 540 \\ 541 & \phi_t+\frac{1}{2} |\vec{\upsilon}|^2 + g\zeta=-\frac{p}{\rho} 542 & \text{динамическое ГУ на }z=\zeta(x,y,t) 543 \\ 544 & D\zeta = \nabla \phi \cdot \vec{n} 545 & \text{кинематическое ГУ на }z=\zeta(x,y,t)\\ 546 \end{align*}% 547 \vspace{-2.5\baselineskip}% 548 \end{beamercolorbox}% 549 % 550 \pause% 551 % 552 \spbuArrow{}% 553 \vspace{-0.2cm}% 554 % 555 \begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}% 556 \vspace{-\baselineskip}% 557 \begin{align*}% 558 & \phi_{xx} + \phi_{yy} + \phi_{zz} = 0\\ 559 & \zeta_t 560 = \underbrace{\fillrectemph{f1}{\left(\FracSqrtZetaY{\zeta_x} - \zeta_x\right)}}_{f_1} \phi_x 561 + \underbrace{\fillrectemph{f2}{\left(\FracSqrtZetaY{\zeta_y} - \zeta_y\right)}}_{f_2} \phi_y 562 - \underbrace{\fillrectemph{f3}{\FracSqrtZetaY{1}}}_{f_3} \phi_z \\ 563 \end{align*}% 564 \vspace{-2.7\baselineskip}% 565 \end{beamercolorbox}% 566 % 567 \pause% 568 #+end_export 569 570 *** Columns 571 :PROPERTIES: 572 :BEAMER_env: columns 573 :BEAMER_opt: T 574 :END: 575 576 **** Column 1 577 :PROPERTIES: 578 :BEAMER_col: 0.47 579 :END: 580 #+begin_export latex 581 \vspace{-\baselineskip}% 582 \spbuArrow{}% 583 \vspace{-1.3\baselineskip}% 584 \begingroup% 585 \setlength\abovedisplayskip{1mm}% 586 \begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}% 587 Решение в рамках линейной теории:% 588 \begin{equation*}% 589 \phi(x,y,z,t) = \mathcal{W}_1(x,y,z) \mathrel{*} \left(-\zeta_t(x,y,t)\right) 590 \end{equation*}% 591 \vspace{-1.5\baselineskip}% 592 \end{beamercolorbox}% 593 \endgroup% 594 #+end_export 595 596 **** Column 2 597 :PROPERTIES: 598 :BEAMER_col: 0.47 599 :END: 600 #+begin_export latex 601 \vspace{-\baselineskip}% 602 \spbuArrow{}% 603 \vspace{-1.3\baselineskip}% 604 \begingroup% 605 \setlength\abovedisplayskip{1mm}% 606 \begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}% 607 Общее решение:\vspace{-0.5\baselineskip}% 608 \begin{equation*}% 609 \phi(x,y,z,t) 610 = 611 \mathcal{W}_2(x,y,z) 612 \mathrel{*} 613 % \frac{\zeta_t(x,y,t)}{i f_1(x,y,t) + i f_2(x,y,t) - f_3(x,y,t)} 614 \frac{\zeta_t(x,y,t)}{F\left(f_1, f_2, f_3\right)} 615 % & \mathcal{W}_1 \approx \mathcal{W}_2 616 \end{equation*}% 617 \vspace{-1.35\baselineskip}% 618 \end{beamercolorbox}% 619 \endgroup% 620 #+end_export 621 622 ** Notes 623 :PROPERTIES: 624 :BEAMER_env: ignoreheading 625 :END: 626 627 #+beamer: \spbuSlide{slide-potential-flow<3>} 628 629 Модель АРСС воспроизводит волны, распределения характеристик которых совпадает с 630 реальными, а значит, результирующую взволнованную морскую поверхность можно 631 использовать для вычисления поля давлений, создаваемого волнами. В то же время 632 поверхность может содержать волны произвольных амплитуд, из-за чего методы 633 вычисления поля давлений, используемые в рамках линейной теории волн, 634 неприменимы для модели АРСС. В связи с этим уравнения, описывающие движение 635 жидкости были решены без упрощений линейной теории. 636 637 Уравнения представлены на слайде. Это уравнение неразрывности (или уравнение 638 Лапласа), уравнение движения (или динамическое граничное условие) и 639 кинематическое граничное условие на свободной поверхности. Поскольку 640 взволнованная поверхность известна, второе уравнение превращается в явную 641 формулу для вычисления давлений, а задача сводится к поиску потенциала скорости 642 \(\phi\). На слайде красным цветом выделены множители, которыми пренебрегают в 643 рамках линейной теории волн. 644 645 Система решается методом Фурье с использованием некоторых физических и 646 математических упрощений, описанных в работе. Полное решение записывается в виде 647 свертки некоторой оконной функции с суперпозицией производных взволнованной 648 поверхности. Полученное решение отличается от решения из линейной теории 649 наличием удаленных множителей и другой записью оконной функции. Если 650 воспользоваться предположением о малости амплитуд волн, то полученное решение 651 сводится к решению из линейной теории волн. 652 653 ** Верификация метода выч. давлений 654 :PROPERTIES: 655 :BEAMER_act: <presentation> 656 :BEAMER_OPT: label=slide-potential-verification 657 :END: 658 659 660 *** Columns 661 :PROPERTIES: 662 :BEAMER_env: columns 663 :BEAMER_opt: T 664 :END: 665 666 **** Column 1 667 :PROPERTIES: 668 :BEAMER_col: 0.47 669 :END: 670 671 #+beamer: \vspace{-0.5cm} 672 #+header: :width 2.7 :height 1.5 :bg #F5F6F5 :font sans 673 #+begin_src R :file build/slides-plain-wave-velocity-field-comparison-ru.pdf 674 source(file.path("R", "velocity-potentials.R")) 675 nlevels <- 41 676 levels <- pretty(c(-200,200), nlevels) 677 palette <- colorRampPalette(c("blue", "lightyellow", "red")) 678 col <- palette(nlevels-1) 679 680 par(pty="s",mgp=c(3,0.2,0),mfrow=c(1,2),mar=c(1.5,1,0,0),cex=0.66,bty="n") 681 682 # linear solver 683 #par(fig=c(0,0.95,0,0.5),new=TRUE) 684 arma.plot_velocity_potential_field( 685 file.path("build", "arma-benchmarks", "verification-orig", "plain_wave_linear_solver"), 686 levels=levels, 687 col=col, 688 contour_lwd=0.5, 689 zeta_lwd=1, 690 sky_col='#F5F6F5', 691 axis_args=list(tck=-0.02), 692 z_min=-5, 693 title_args=list(main=" Линейная\n теория",outer=FALSE,adj=0,line=-1.5,cex.main=0.77) 694 ) 695 696 # high-amplitude solver 697 #par(fig=c(0,0.95,0.5,1),new=TRUE) 698 arma.plot_velocity_potential_field( 699 file.path("build", "arma-benchmarks", "verification-orig", "plain_wave_high_amplitude_solver"), 700 levels=levels, 701 col=col, 702 contour_lwd=0.5, 703 zeta_lwd=1, 704 sky_col='#F5F6F5', 705 axis_args=list(tck=-0.02), 706 z_min=-5, 707 title_args=list(main=" Общее\n решение",outer=FALSE,adj=0,line=-1.5,cex.main=0.77) 708 ) 709 #+end_src 710 711 #+RESULTS: 712 [[file:build/slides-plain-wave-velocity-field-comparison-ru.pdf]] 713 714 **** Column 2 715 :PROPERTIES: 716 :BEAMER_col: 0.47 717 :END: 718 719 #+beamer: \vspace{-0.5cm} 720 #+header: :width 2.7 :height 1.3 :bg #F5F6F5 :font sans 721 #+begin_src R :file build/slides-large-and-small-amplitude-velocity-field-comparison-ru.pdf 722 source(file.path("R", "velocity-potentials.R")) 723 linetypes = c("solid", "dashed") 724 par(pty="s",mgp=c(3,0.3,0),mfrow=c(1,2),mar=c(1.5,1,0,0),cex=0.66,bty="n") 725 arma.plot_velocity( 726 file.path("data", "velocity", "low-amp"), 727 file.path("data", "velocity", "low-amp-0"), 728 linetypes=linetypes, 729 ylim=c(-2,2), 730 axis_args=list(tck=-0.04), 731 title_args=list(main=" Малая\n амплитуда",outer=FALSE,adj=0,line=-1.5,cex.main=0.77), 732 legend_x="bottomright" 733 ) 734 arma.plot_velocity( 735 file.path("data", "velocity", "high-amp"), 736 file.path("data", "velocity", "high-amp-0"), 737 linetypes=linetypes, 738 ylim=c(-2,2), 739 title_args=list(main="Большая\n амплитуда",outer=FALSE,adj=1,line=-1.5,cex.main=0.77), 740 axis_args=list(tck=-0.04), 741 legend_x="bottomright" 742 ) 743 #+end_src 744 745 #+RESULTS: 746 [[file:build/slides-large-and-small-amplitude-velocity-field-comparison-ru.pdf]] 747 748 749 *** End column 750 :PROPERTIES: 751 :BEAMER_env: ignoreheading 752 :END: 753 754 #+header: :width 5.5 :height 1.3 :bg #F5F6F5 :font sans 755 #+begin_src R :file build/slides-irregular-wave-velocity-field-ru.pdf 756 source(file.path("R", "velocity-potentials.R")) 757 nlevels <- 41 758 levels <- pretty(c(-40,40), nlevels) 759 palette <- colorRampPalette(c("blue", "lightyellow", "red")) 760 col <- palette(nlevels-1) 761 762 par(mgp=c(3,0.2,0),mar=c(1.5,1,0,0),cex=0.66,bty="n") 763 764 # high-amplitude solver 765 arma.plot_velocity_potential_field( 766 file.path("build", "arma-benchmarks", "verification", "velocity", "our-formula"), 767 levels=levels, 768 col=col, 769 contour_lwd=0.5, 770 zeta_lwd=1, 771 sky_col='#F5F6F5', 772 axis_args=list(tck=-0.02), 773 x_max=40, 774 z_min=-5, 775 compare_to=file.path("build", "arma-benchmarks", "verification", "velocity", "linear"), 776 points_args=list(col="black",bg="black",pch=21,cex=1.5), 777 title_args=list(main=" Нерегулярное волнение",outer=FALSE,adj=0.01,line=-1.5,cex.main=0.77) 778 ) 779 #+end_src 780 781 #+RESULTS: 782 [[file:build/slides-irregular-wave-velocity-field-ru.pdf]] 783 784 785 ** Notes 786 :PROPERTIES: 787 :BEAMER_env: ignoreheading 788 :END: 789 790 #+beamer: \spbuSlide{slide-potential-verification} 791 792 Чтобы оценить отличия полученного решения, оно было сопоставлено с известными 793 решениями. 794 795 Если сравнивать с решением из линейной теории волн (слева сверху), то для 796 синтетических волн большой амплитуды использование нового решения приводит к 797 смещению области, в которой сконцентрирована основная энергия волны ближе к 798 гребню. 799 800 Если сравнивать с решением для волн малых амплитуд (справа сверху), то новое 801 решение работает как для волн малых, так и больших амплитуд, а для волн 802 малых амплитуд можно говорить о рациональном соответствии между обоими 803 решениями. 804 805 Если сравнивать с решением из линейной теории волн (снизу), то для нерегулярного 806 волнения, воспроизведенного моделью АРСС, новое решение показывает в среднем на 807 20% большие значения потенциала скорости вблизи гребней волн. 808 809 ** Empty frame 810 :PROPERTIES: 811 :BEAMER_env: fullframe 812 :BEAMER_act: <handout> 813 :END: 814 815 * Программный комплекс 816 817 ** Программная реализация 818 :PROPERTIES: 819 :BEAMER_act: <presentation> 820 :BEAMER_OPT: label=slide-implementation 821 :END: 822 823 #+begin_export latex 824 \mode<presentation>{% 825 \tikzset{Ann/.style={ 826 fill=none, 827 baseline, 828 font=\footnotesize\linespread{1}\selectfont, 829 }}% 830 \tikzset{Cube/.style={ 831 rectangle, 832 text width=0.7cm, 833 text height=0.7cm, 834 draw=spbuDarkGray, 835 fill=spbuWhite2, 836 thick, 837 font=\footnotesize\linespread{1}\selectfont, 838 align=center, 839 inner sep=0.5mm 840 }}% 841 \tikzset{CubeText/.style={ 842 fill=none, 843 baseline, 844 font=\footnotesize\linespread{1}\selectfont, 845 inner sep=0mm 846 }}% 847 \tikzset{DataBlock/.style={ 848 rectangle, 849 draw=spbuDarkGray, 850 thick, 851 text width=2cm, 852 align=center, 853 fill=spbuWhite2, 854 font=\footnotesize\linespread{1}\selectfont, 855 inner sep=1mm 856 }}% 857 \tikzset{Arrow/.style={ 858 very thick, 859 arrows={-Triangle[length=0.25cm,width=0.125cm]}, 860 draw=spbuDarkGray 861 }}% 862 \tikzset{Dashed/.style={ 863 very thick, 864 draw=spbuDarkGray2, 865 dashed 866 }}% 867 \vspace{2cm} 868 \begin{tikzpicture}[x=3cm,y=1cm,remember picture] 869 % nodes 870 \node[DataBlock,text width=1.2cm] (umlACF) at (0,0) 871 {АКФ}; 872 \node[DataBlock,text width=2.6cm] (umlYW) at (1.1,0.8) 873 {Коэффициенты АР}; 874 \node[DataBlock,text width=2.6cm] (umlNonlin) at (1.1,-0.8) 875 {Коэффициенты СС}; 876 \node[DataBlock,text width=1.5cm] (umlAR) at (2.1,0.8) 877 {Модель АР}; 878 \node[DataBlock,text width=1.5cm] (umlMA) at (2.1,-0.8) 879 {Модель СС}; 880 \node[DataBlock,text width=1.5cm] (umlARMA) at (3.1,0) 881 {Модель АРСС}; 882 \node[DataBlock] (umlPres) at (4.1,0) 883 {Давления}; 884 % arrows 885 \path[Arrow] (umlACF.east) -- (umlYW.west); 886 \path[Arrow] (umlACF.east) -- (umlNonlin.west); 887 \path[Arrow] (umlYW.east) -- (umlAR.west); 888 \path[Arrow] (umlNonlin.east) -- (umlMA.west); 889 \path[Arrow] (umlAR.east) -- (umlARMA.west); 890 \path[Arrow] (umlMA.east) -- (umlARMA.west); 891 \path[Arrow] (umlARMA.east) -- (umlPres.west); 892 \end{tikzpicture} 893 #+end_export 894 895 #+begin_export latex 896 \begin{tikzpicture}[remember picture,overlay] 897 % cubes 898 \node[Cube,anchor=north west,yshift=-1.2cm,xshift=-3.5cm] 899 (cube00) at (current page.north east) {}; 900 \node[Cube,right=-0.5mm of cube00] (cube01) {}; 901 \node[Cube,below=-0.5mm of cube00] (cube10) {}; 902 \node[Cube,below=-0.5mm of cube01] (cube11) {}; 903 % cube labels 904 \node[CubeText] (cubeLabel00) at (cube00) {A}; 905 \node[CubeText] (cubeLabel01) at (cube01) {B}; 906 \node[CubeText] (cubeLabel10) at (cube10) {C}; 907 \node[CubeText] (cubeLabel11) at (cube11) {D}; 908 % cube arrows 909 \path[Arrow] (cubeLabel01.west) -- (cubeLabel00.east); 910 \path[Arrow] (cubeLabel10.north) -- (cubeLabel00.south); 911 \path[Arrow] (cubeLabel11.north west) -- (cubeLabel00.south east); 912 \path[Arrow] (cubeLabel11.north) -- (cubeLabel01.south); 913 \path[Arrow] (cubeLabel11.west) -- (cubeLabel10.east); 914 \end{tikzpicture} 915 #+end_export 916 917 #+begin_export latex 918 \begin{tikzpicture}[remember picture,overlay] 919 % nodes 920 \node[Ann,anchor=north,below=of umlACF] (annACF) 921 {Свертка (\(2\mathcal{F}\))}; 922 \node[Ann,anchor=north,above=of umlYW] (annYW) 923 {Симметричная СЛАУ}; 924 \node[Ann,anchor=north,below=of umlNonlin] (annNonlin) 925 {Метод простой итерации}; 926 \node[Ann,anchor=north,below=of umlMA,yshift=\baselineskip] (annMA) 927 {Свертка (\(3\mathcal{F}\))}; 928 \node[Ann,anchor=north,below=of umlPres] (annPres) 929 {Свертка (\(4\mathcal{F}\))}; 930 \node[Ann,anchor=south,above=of umlAR,align=center,yshift=1.5\baselineskip] (annAR) 931 {Мини-планировщик задач}; 932 \node[Ann,anchor=north,below=1mm of cube11.south west,align=center] (annARdeps) 933 {Авторегрессионные\\зависимости}; 934 % arrows 935 \path[Dashed] (annACF.north -| umlACF.south) -- (umlACF.south); 936 \path[Dashed] (annNonlin.north -| umlNonlin.south) -- (umlNonlin.south); 937 \path[Dashed] (annYW.south -| umlYW.north) -- (umlYW.north); 938 \path[Dashed] (annAR.south) -- (umlAR.north); 939 \path[Dashed] (cube00.west |- annAR.east) -- (annAR.east); 940 \path[Dashed] (annMA.north -| umlMA.south) -- (umlMA.south); 941 \path[Dashed] (annPres.north -| umlPres.south) -- (umlPres.south); 942 \end{tikzpicture} 943 } 944 #+end_export 945 946 ** Notes 947 :PROPERTIES: 948 :BEAMER_env: ignoreheading 949 :END: 950 951 #+beamer: \spbuSlide{slide-implementation} 952 953 Программный комплекс состоит из программных реализаций модели АРСС и линейной 954 модели Лонге---Хиггинса и метода вычисления давлений. Для каждой модели и метода 955 написана параллельная реализация для систем с общей памятью. Высокая 956 производительность обеспечивается параллельной реализацией каждой модели и 957 метода для систем с общей памятью и использованием быстрых преобразований Фурье, 958 где это возможно. 959 960 Программная реализация модели авторегрессии включает в себя планировщик задач, 961 который обеспечивает параллельную генерацию отдельных блоков, на которые 962 разделяется взволнованная поверхность, с учетом авторегрессионных зависимостей. 963 Сама формула модели сводится к вычислению большого количества полиномов, что 964 эффективно реализуется с помощью инструкций процессора FMA (Fused Multiply-Add). 965 966 Программная реализация модели Лонге---Хиггинса сводится к простому параллельному 967 суммированию гармоник в каждой точке поверхности. 968 969 Вычисление коэффициентов авторегрессии реализуется стандартным методом решения 970 систем линейных алгебраических уравнений с симметричными матрицами. Вычисление 971 коэффициентов скользящего среднего реализуется методом простой итерации. 972 973 Практически все остальные модели и методы используют быстрое преобразование 974 Фурье. 975 - Программная реализация модели скользящего среднего сводится к параллельной 976 свертке на основе быстрых преобразований Фурье. 977 - Программная реализация вычисления давлений сводится к четырем быстрым 978 преобразованиям Фурье с большим количеством трансцендентных математических 979 функций. 980 - Вычисление автоковариационной функции сводится к трем быстрым преобразованиям 981 Фурье. 982 983 ** Система с общей памятью 984 :PROPERTIES: 985 :header-args:R: :results output raw :exports results 986 :BEAMER_act: <presentation> 987 :BEAMER_OPT: label=slide-smp 988 :END: 989 990 #+beamer: \small 991 #+header: :results output raw :exports results 992 #+name: tab-arma-performance 993 #+begin_src R :results output org :exports results 994 source(file.path("R", "benchmarks.R")) 995 options(arma.mark=",") 996 model_names <- list( 997 ar.x="АР", 998 ma.x="СС", 999 lh.x="ЛХ", 1000 ar.y="АР", 1001 ma.y="СС", 1002 lh.y="ЛХ", 1003 Row.names="\\orgcmidrule{2-4}{5-6}Подпрограмма" 1004 ) 1005 row_names <- list( 1006 determine_coefficients="Коэффициенты", 1007 validate="Сходимость", 1008 generate_surface="Поверхность", 1009 write_all="Вывод в файл", 1010 copy_to_host="Копирование с GPU", 1011 velocity="Давления" 1012 ) 1013 arma.print_openmp_vs_opencl(model_names, row_names) 1014 #+end_src 1015 1016 #+attr_latex: :booktabs t 1017 #+RESULTS: tab-arma-performance 1018 1019 ** Notes 1020 :PROPERTIES: 1021 :BEAMER_env: ignoreheading 1022 :END: 1023 1024 #+beamer: \spbuSlide{slide-smp} 1025 1026 На слайде представлены результаты тестирования производительности различных 1027 компонент программного комплекса на системах с общей памятью с использованием 1028 OpenMP (процессора) и OpenCL (видеокарты). Из таблицы видно, что 1029 - большую часть времени система тратит на генерацию взволнованной поверхности, 1030 - использование видеокарты выгодно только для модели Лонге---Хиггинса и 1031 вычисления давлений и 1032 - модель авторегрессии более производительна, чем модель скользящего среднего, 1033 несмотря на использование быстрых преобразований Фурье. 1034 1035 ** Система с распределенной памятью 1036 :PROPERTIES: 1037 :BEAMER_act: <presentation> 1038 :BEAMER_OPT: label=slide-mpp 1039 :END: 1040 1041 *** Columns 1042 :PROPERTIES: 1043 :BEAMER_env: columns 1044 :BEAMER_opt: T 1045 :END: 1046 1047 **** Column 1 1048 :PROPERTIES: 1049 :BEAMER_col: 0.37 1050 :END: 1051 1052 #+beamer: \vspace{-1cm} 1053 #+header: :width 2.3 :height 3 :bg #F5F6F5 :font sans 1054 #+begin_src R :file build/slides-bscheduler-performance-ru.pdf 1055 source(file.path("R", "benchmarks.R")) 1056 par(mgp=c(1.5,0.4,0), mar=c(3.2,2.5,0.5,0.7), cex=0.7) 1057 data <- arma.load_bscheduler_performance_data() 1058 arma.plot_bscheduler_performance_data( 1059 data, 1060 list( 1061 openmp="OpenMP", 1062 bsc1="Bscheduler (один узел)", 1063 bsc2="Bscheduler (два узла)", 1064 openmp_args=list(lty="solid", lwd=2, col='#404040', pch=19), 1065 bsc1_args=list(lty="solid", lwd=2, col='#5353AC', pch=19), 1066 bsc2_args=list(lty="solid", lwd=2, col='#E57575', pch=19) 1067 ) 1068 ) 1069 title(xlab="Размер взволнованной поверхности", ylab="Время, сек.") 1070 #+end_src 1071 1072 #+RESULTS: 1073 [[file:build/slides-bscheduler-performance-ru.pdf]] 1074 1075 **** Column 2 1076 :PROPERTIES: 1077 :BEAMER_col: 0.57 1078 :END: 1079 1080 #+beamer: \vspace{-1cm} 1081 #+name: fig-master-slave-failure 1082 #+header: :width 3 :height 3 :bg #F5F6F5 :font sans 1083 #+begin_src R :file build/slides-master-slave-failure-ru.pdf 1084 source(file.path("R", "benchmarks.R")) 1085 par(mgp=c(1.5,0.4,0), mar=c(3,2.5,0.5,0.5), cex=0.7) 1086 data <- arma.load_master_slave_failure_data() 1087 arma.plot_master_slave_failure_data( 1088 data, 1089 list( 1090 master="Bscheduler (главный узел)", 1091 slave="Bscheduler (подчиненный узел)", 1092 nofailures="Bscheduler (без выхода из строя)", 1093 master_args=list(lty="solid", lwd=2, col='#E57575', pch=19), 1094 slave_args=list(lty="solid", lwd=2, col='#5353AC', pch=19), 1095 nofailures_args=list(lty="solid", lwd=2, col='#404040', pch=19) 1096 ) 1097 ) 1098 title(xlab="Размер взволнованной поверхности", ylab="Время, сек.") 1099 #+end_src 1100 1101 #+RESULTS: fig-master-slave-failure 1102 [[file:build/slides-master-slave-failure-ru.pdf]] 1103 1104 ** Notes 1105 :PROPERTIES: 1106 :BEAMER_env: ignoreheading 1107 :END: 1108 1109 #+beamer: \spbuSlide{slide-mpp} 1110 1111 Для модели авторегрессии сделана реализация для систем с распределенной памятью 1112 и отказоустойчивый планировщик задач. Планировщик позволяет добиться увеличения 1113 производительности с увеличением количества узлов, которое близко к линейному 1114 (график слева). Также планировщик позволяет продолжить вычисления, даже если 1115 один из узлов кластера выходит из строя. При этом перезапускается только та 1116 часть задачи, которая вычислялась на вышедшем из строя узле, и теряется 1117 производительность только этого узла. 1118 1119 * Заключение 1120 :PROPERTIES: 1121 :BEAMER_env: ignoreheading 1122 :END: 1123 1124 ** Заключение 1125 :PROPERTIES: 1126 :BEAMER_act: <presentation> 1127 :BEAMER_OPT: label=slide-conclusion 1128 :END: 1129 1130 - Разработана трехмерная модель для генерации волн произвольных амплитуд. 1131 - Разработан метод вычисления поля давлений без предположений о малости амплитуд 1132 волн. 1133 - Разработан программный комплекс для систем с общей и распределенной памятью. 1134 1135 ** Notes 1136 :PROPERTIES: 1137 :BEAMER_env: ignoreheading 1138 :END: 1139 1140 #+beamer: \spbuSlide{slide-conclusion} 1141 1142 Цель исследования заключалась в изучении и разработке альтернативных 1143 математических моделей и численных методов, которые бы позволили выйти за рамки 1144 линейной теории волн в задаче имитационного моделирования морского волнения. В 1145 рамках исследования были разработаны 1146 - трехмерная модель для генерации волн произвольных амплитуд, 1147 - метод вычисления поля давлений без предположений о малости амплитуд волн, 1148 - программный комплекс для систем с общей и распределенной памятью. 1149 1150 ** Апробация 1151 :PROPERTIES: 1152 :BEAMER_act: <presentation> 1153 :BEAMER_OPT: label=slide-validation 1154 :END: 1155 1156 - Конференции: STAB'13, ISSW'14, HPCS'15, HPCS'16, HPCS'17. 1157 - Глава в книге /The Ocean in Motion/ (Springer Oceanography). 1158 1159 *** Columns 1160 :PROPERTIES: 1161 :BEAMER_env: columns 1162 :BEAMER_opt: T 1163 :END: 1164 1165 **** LAMP4 1166 :PROPERTIES: 1167 :BEAMER_col: 0.25 1168 :BEAMER_env: block 1169 :END: 1170 1171 #+ATTR_LATEX: :width \linewidth 1172 [[file:graphics/slides/lamp4-ar-waves.png]] 1173 1174 **** Ascheduler 1175 :PROPERTIES: 1176 :BEAMER_col: 0.25 1177 :BEAMER_env: block 1178 :END: 1179 1180 #+ATTR_LATEX: :width \linewidth 1181 [[file:graphics/slides/spark-logo.png]] 1182 1183 **** HPCS'15 1184 :PROPERTIES: 1185 :BEAMER_col: 0.25 1186 :BEAMER_env: block 1187 :END: 1188 1189 #+ATTR_LATEX: :width \linewidth 1190 [[file:graphics/slides/hpcs-15-poster-paper-award.png]] 1191 1192 #+latex: \setbeamerfont{block title}{size=\normalsize} 1193 1194 ** Notes 1195 :PROPERTIES: 1196 :BEAMER_env: ignoreheading 1197 :END: 1198 1199 #+beamer: \spbuSlide{slide-validation} 1200 1201 Доклады по теме диссертации были представлены на конференциях International Ship 1202 Stability Workshop и High-Performance Computing & Simulation. По результатам 1203 исследования опубликована глава в книге The Ocean in Motion. 1204 1205 Модель авторегрессии и метод вычисления давлений были интегрированы в 1206 программный комплекс Large Amplitude Motion Program (LAMP4). 1207 1208 На основе отказоустойчивого планировщика задач был сделан аналог для фреймворка 1209 обработки больших массивов данных Apache Spark. 1210 1211 Доклад на конференции HPCS'15 был признан лучшим устным докладом. 1212 1213 ** Взволнованная морская поверхность :noexport: 1214 :PROPERTIES: 1215 :BEAMER_act: <presentation> 1216 :END: 1217 1218 #+begin_export latex 1219 \begin{tikzpicture}[remember picture,overlay] 1220 \node[inner sep=0pt,rectangle] at (current page.center){% 1221 \includegraphics[width=0.95\paperwidth]{wavy} 1222 };% 1223 \end{tikzpicture} 1224 #+end_export 1225