Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 19, 2016 21:34:04

Etayson
Зарегистрирован: 2016-06-19
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

Здравствуйте.
Есть исходники подпрограмм для программы майнера на питоне.
Вот ссылка: https://github.com/ethereum/wiki/wiki/Ethash
К сожалению, я не владею этим языком программирования.
Хочу эти подпрограммы перевести на Purebasic.
Часть я сделал, но часть для меня вообще загадка из-за синтаксиса питона.
Может кто-то за определенную плату, рассказать мне как работают эти подпрограммы. Какие данные используются и т.д. ?

Офлайн

#2 Июнь 19, 2016 22:39:10

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

я думаю достаточно почитать первую главу любой книги по питону и все станет понятно.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Июнь 20, 2016 07:27:25

Etayson
Зарегистрирован: 2016-06-19
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

ZerG
я думаю достаточно почитать первую главу любой книги по питону и все станет понятно.
Если бы всё так просто было…
Я даже в среде питон не могу запустить их, постоянно какие-то ошибки вылазят, то чего-то encode надо сделать, то наоборот.. Мрак во общем. Так что никто не сможет объяснить?
Меня ни столько сами функции смущают, сколько возвращаемые значения..
Например:
def hashimoto_full(full_size, dataset, header, nonce):
return hashimoto(header, nonce, full_size, lambda x: dataset)

Откуда 5й параметр x берется, если hashimoto_full вызывается только с 4мя параметрами?

Офлайн

#4 Июнь 20, 2016 08:35:12

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

Так все го то надо посмотреть пару непонятных моментов.
Например в данном случае посмотрите lambda

lambda x: dataset — это и есть 4 член.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Июнь 20, 2016 10:15:21

Etayson
Зарегистрирован: 2016-06-19
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

Во общем, разобрался я со всем.
Но скорость питона просто поражает… очень-очень медленный
Если делать майнер на питоне то можно и неделю ждать пока DAG сделается.

Отредактировано Etayson (Июнь 20, 2016 12:38:06)

Офлайн

#6 Июнь 21, 2016 10:51:50

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

PyPy в помощь.

Офлайн

#7 Июнь 21, 2016 15:33:58

Etayson
Зарегистрирован: 2016-06-19
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

helm2004
PyPy в помощь.
Читаю про PyPy..
cnt = 10 * 1000 * 1000
for _ in xrange(cnt):
i = i + 1



5.8млн операций сложения в секунду на обычном СPython 2.6 (python test.py)
42.5млн операций в секунду на PyPy 1.2 (pypy test.py)

смешно..я на пурике сделал тот же тест за 22мс, т.е.1000/22=45,45 Умножаем на 10 000 000 и получаем, что за 1с 450млн операций. А точнее 455млн операций сложений в сек. И это при работающем 3д максе, на котором шел рендер. Так что PyPy не далеко от питона.
OpenConsole(“bla-bla”)
cnt=10*1000*1000
i=0
StartTime = ElapsedMilliseconds()
For j=0 To cnt
i=i+1
Next j
PrintN(“Elapced time:”+Str(ElapsedMilliseconds()-StartTime)+“ms”)
Input()

Отредактировано Etayson (Июнь 21, 2016 15:34:34)

Офлайн

#8 Июнь 21, 2016 15:48:14

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

Etayson
Purebasic

Боже. Оно еще живое? Никак не сдохнет?

Все это основные преимущества PureBasic`а,но надо заметить, что он не является бесплатным. Ограниченную версиюможно скачать бесплатно с сайта разработчиков purebasic.com,но она не позволит компилировать программу в машинный код и выполнять программу длиннее800 строк, полная же версия стоит 99$.

Да пусть меня поцелуют в одно место все разрабы этого “шикарного” языка..

Отредактировано 4kpt_IV (Июнь 21, 2016 15:50:32)

Офлайн

#9 Июнь 21, 2016 16:14:54

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

каждому линкорну своя торпеда.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#10 Июнь 21, 2016 17:30:11

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

Etayson
я на пурике сделал тот же тест за 22мс
Etayson
И это при работающем 3д максе
:) :) :) Мастерство тестирования быстродействия впечатляет.

А я вот тут на отстойном C++ сделал тест
#include <iostream>
#define __MSVC__
#include <rdtsc.h>
using namespace std;
int main()
{
    unsigned long long t0,t1;
    t0=rdtsc();
    for(int j=0;j<1000000000;++j);
    t1=rdtsc();
    cout<<double(t1-t0)<<endl;
    return 0;
}
И он выполняется за 28 машинных тактов. Те за 0.3 наносекунды или в 200 миллионов раз быстрее чем на вашем бейсике. И какой из этого следует вывод?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version