Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 17, 2013 19:18:57

wondebar
Зарегистрирован: 2013-12-17
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите сделать многопоточность

from math import*
def f(x)
  return 2*x
integrate(a,b):
  с=(a+b)/2
  return ((f(a)+f(b)+4*f(c))/6)
a=0.0
b=2.0
h=0.1
eps=0.01
n=4
s1=1.0
s2=0.0
t=0
while (fabs(s2-s1)>eps):
  s2=s1
  t+=1
  print t
  s1=0
  n*=2
  h=(b-a)/n
  for i in range(0,n):
    s1+=integrate(a+i*h,a+(i+1)*h)
    s1+=h
print 'Result='+str(s1)
вот код,надо написать программу,чтобы считала интеграл методом рунги.программа есть,но она однопоточная,а надо распоточить,помогите пожалуйста.ну и грамотность кода тоже проверьте,если не сложно)

Отредактировано wondebar (Дек. 17, 2013 19:30:05)

Офлайн

#2 Дек. 17, 2013 23:11:53

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

помогите сделать многопоточность

wondebar
грамотнасть никакая, синтаксические ошибки, некорректные отступы функция f это вообще шедевр кодоплетства. Ваш код копипастом не проверить - это уже большой минус вам. Такое ощущение что вы его откуда то неумело вытащили и попытались под свои нужны приспособить.

По теме: в общем то рискну предположить что такие алгоритмы слабо поддаются распараллеливанию. Гипотетически можно выстроить очередь из итераций цикла while и worker'ами ее обслуживать. Но думаю что кто то предложит вариант лучше



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Дек. 18, 2013 05:19:15

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

помогите сделать многопоточность

В питоне многопоточность для математических вычислений ничего не даст, даже наоборот притормозит программу.



Офлайн

#4 Дек. 18, 2013 09:34:54

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

помогите сделать многопоточность

plusplus
В питоне многопоточность для математических вычислений ничего не даст, даже наоборот притормозит программу.

Если только не пользоваться специальными модулями, типа NumPy



Офлайн

#5 Дек. 18, 2013 09:46:15

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

помогите сделать многопоточность

Budulianin
Если только не пользоваться специальными модулями, типа NumPy

Интересно, а можно поподробней?



Офлайн

#6 Дек. 18, 2013 10:41:15

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

помогите сделать многопоточность

plusplus
Интересно, а можно поподробней?

NumPy так написан, что для корректной работы с потоками, GIL ему не нужен, т.е. NumPy, может эффективно делать параллельные вычисления, обходя ограничения GIL.

По моему в SciPy также



Отредактировано Budulianin (Дек. 18, 2013 10:46:57)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version