Отдал бы и ползарплаты! Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1235.0 пользователей не могут ошибаться!
?6912
прекрасное6424
говно5887
говнорашка5512
хуита4695
anime3056
linux2645
music2624
bnw2588
рашка2561
log2337
ололо2114
pic1814
дунч1734
сталирасты1488
украина1437
быдло1434
bnw_ppl1371
дыбр1237
гімно1158

вот код из #1899432 Предлагайте ваши варианты по оптимизации. ----------------------------------------- void calcParticles() { #ifdef USE_OPENMP #pragma omp parallel for #endif for (int i = 0; i < pVecSz; i++) { Particle &p = particleVec[i]; float sqrs = sqrt((X-p.x)*(X-p.x)+(Y-p.y)*(Y-p.y)+(Z-p.z)*(Z-p.z) ); float f = G*((p.M*M)/sqrt(rs)); float f = G*((p.M*M)/1.0); float a = f/p.M; float cosx = (X-p.x)/sqrs; float cosy = (Y-p.y)/sqrs; float cosz = (Z-p.z)/sqrs; float ax = a*cosx; float ay = a*cosy; float az = a*cosz; p.vx += ax*1/invFPS; p.vy += ay*1/invFPS; p.vz += az*1/invFPS; p.x += p.vx; p.y += p.vy; p.z += p.vz; } } ------------------------------------------ Сам думаю: 1. Вынести за пределы цикла: float f = G*((p.M*M)/1.0); float a = f/p.M; 2. Заюзать pthreads (вдруг полущ будет) 3. Заюзать SSE3 для извлечения квадратного корня и подсчетса направляющих косинусов.
#6SP5WG (0) / @ninesigns / 4363 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.