Member
Статус: Не в сети Регистрация: 27.04.2005 Откуда: москва
2 - уговарил в новой версии и факториал считать будем...
3 - кешь конечно... память пока не сильно.... скоро будет тест (отдельно... или этот переделую) где должна появиться относительно сильная зависимость..
4 - нет не читал... я сам быстренько алгоритм написал... писать то три строчки... читать лень.. раскожи о чём..
а про тему... это не по мне.. это к модераторам..
Последний раз редактировалось xlobuz 20.01.2006 0:47, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 05.06.2005 Откуда: Н. Новгород Фото: 0
xlobuz писал(а):
2 - уговарил вовой версии и факториал считать будем...
Ничего я такого не думал, пошутил я просто...
xlobuz писал(а):
4 - нет не читал...
Ну там чел решал эту же задачу. Решето Эратосфена - название алгоритма. В результате ряда оптимизаций тест, похоже, как раз в память и упёрся. Почитай, тема короткая - 4 страницы.
Member
Статус: Не в сети Регистрация: 27.04.2005 Откуда: москва
_tonis уже.... ну и разбросик результатов у него.....
незнаю что этот товарищи "Эратосфен" за алгорим придумал что его ещё опримизировать можно.... помоему проще нет ничего почти..... два цикла одна проверка..
почитал про алгорит данного товарища... делать ему нечего чтоли было... стока математических операций:))))
задача и в моём случае упрётся в память так как все уже найденые простые числа в ней надо хронить и переодически извлекать... вот и смотри..)) для 100 000 это ещё куда не шло... а если 10 000 000... это же огого скока памяти:)))
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
xlobuz Эрастофена не обижать, а оптимизировать там действительно есть что (напр. разбиение алгоритма на Н потоков, более оптимальный проход по памяти и пр.). Ведь этот грек алгоритм придумал для ручной трассировки (во сказанул!)
Цитата:
найденые простые числа
а нафига? нам действительно понадобится большой объем памяти для хранения (но 10М простых чисел это сколько перебрать чисел всего надо? ну, не меньше 50М точно), но реально-то все-равно мы будем использовать ТОЛЬКО последнее простое число. А потом следующее и т.д. _tonis
Цитата:
Думаю, у него вышел тест скорости опустошения памяти от винды в своп.
Добавлено спустя 1 минуту, 55 секунд PS:
Цитата:
а если 10 000 000... это же огого скока памяти))
это "всего лишь" 40MB long int'ов
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Member
Статус: Не в сети Регистрация: 27.04.2005 Откуда: москва
Root ладно подумал... У Эрастофена ничего алгоритм.. признаю..... )) у моего есть серьёзная проблема по сравнению с ним.... все вычесленые простые числа нужно хранить для дальнейшей работы:)))
Root писал(а):
а если 10 000 000... это же огого скока памяти))
это "всего лишь" 40MB long int'ов
ну ладно ещё два нолика..)
а насчёт нескольких потоков... так и не пойму.... не доходит до меня как сделать это:)))
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
xlobuz ну, например, задаешь простое число, кол-во сканнируемых чисел. делишь диапазон на два - по первой половине проходишь в первом потоке (вычеркивая не делящиеся на заданное простое число числа), по второй половине - вторым (аналогично с тем же самым простым).
Вариант Б:
один поток проходит простым числом N, а второй следующим за ним простым числом В общем, думать нАдА, что будет эффективнее и красивее.
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Member
Статус: Не в сети Регистрация: 27.04.2005 Откуда: москва
Root эт я понимаю....... думаю.... но в моём сознании не как не уложиться... как собственно задать 2 потока?? что это будет из себя представлять... ну С например...
Member
Статус: Не в сети Регистрация: 03.05.2005 Откуда: ObHuHck CITY
xlobuz 2 потока, это как бы 2 паралельно и одновременно выполняемых программы. Есть методы синхронизации потоков и прочее. По этой теме тебе советую почитать книгу Дж.Рихтора. Добавлено спустя 1 минуту, 44 секунды Чтобы создать один поток надо запустить к примеру exe файл один раз.
Для двух потоков, этот же файл(или 2 разных) надо запустить 2 раза(одновременно).
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
N'drew
Цитата:
Для двух потоков, этот же файл(или 2 разных) надо запустить 2 раза(одновременно).
это явно не в стиле виндов.
В nix - да, прокатит и будет смотреться вполне нормально (читаем доки на fork()). Под виндой будет выглядеть не естественно.
а поводу потоков, процессов и нитей - RTFM. Думаю, Вам это не помешает (по крайней мере, если серьезно уверены в том, что говорите).
xlobuz для создания нескольких потоков под вынью предлагается использовать специальную функцию системного апи - CreateThread, в качестве одного из параметров передается указатель на функцию, которая будет выполняться во втором потоке. А первый поток продолжает выполнение... MSDN рулит, в общем
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Member
Статус: Не в сети Регистрация: 27.04.2005 Откуда: москва
Root спасибо... почитаю...
откуда ты умный такой?:))) Добавлено спустя 35 минут, 29 секунд нда... блин учитался... ждите новую версию с многопоточностью не раньше февраля....) Добавлено спустя 1 час, 35 минут, 48 секунд кому интрересно... версия 1.00b1 http://cp.people.overclockers.ru/cgi-bin/dl.pl?id=11680&filename=v_100b1.exe с виду почти ничего нового... но сильно переработаны тесты.. поэтому и выкладываю.. сильно глючить может:)) первая бета всётаки... повился вариант специально для процов типа п2 и слабее.. чтобы по 2 часа не сидеть.... скоро 3 новых теста... надеюсь ... может быть... с многопоточностью.... и работой с памятью...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения