-
- Че та мне кажется это задача анализа кода ДНК. Весьма ресурсоемкая кстати. Помнится даже предлагали добровольцам проводить распределенные вычисления, так чтобы задействовать как минимум десятки тысяч бытовых компьютеров. - KT(17.08.2016 15:21)
- Тут буденовец (и не однократно!) книжку рекомендовал, "Керниган, Брайан У., Пайк, Роб. Практика программирования". Там много полезного по той проблеме которую Вы решаете. Возможно там я такую мысль слышал, что чрезмерные требования к объему Nikolay801_(422 знак., 16.08.2016 10:29)
- можно ехидный вопрос? а что если завтра вам скажут что последовательности теперь 8-ми членные? мало того что задача станет жирной для обычного домашнего (среднестатистического) компа. так ещё и она однозначно выползет за пределы 32-х разрядной Mahagam(126 знак., 15.08.2016 15:22)
- У "большой-пребольшой базы данных (GeneBank)" как будете данные забирать? Может она сразу их в нужном виде может отдать? И "большая-пребольшая" это сколько интересующих вас записей? - AlexBi(12.08.2016 11:09)
- Скорее всего у Ксении всего одна запись огромной длины. Вопрос в том "как складывать / как считать результат". Ну СУБД легко и относительно быстро решается с использованием индекса для БД результата. AU08(757 знак., 12.08.2016 19:04 - 23:06)
- Исходные файлы - текстовые, в PDB-формате. В них ищут секцию SEQRES, где белок записан в виде последовательности аминокислот в трехбуквенном коде. Код переводится в порядковые номера 0-20. Потом из этой последовательности выбирают участки, Ксения(331 знак., 12.08.2016 19:31)
- Кстати, дорогая редакция, для СУБД можно и нужно использовать поле из 7 (семи) символов. В цифры переводить не обязательно. AU08(816 знак., 12.08.2016 19:52 - 20:17)
- Кажется что понятно. Читаем последовательно файл, вырезаем/парсим комбинацию из 7 цифр и подсчитываем количество для каждого из уникальных сочетаний (номеров). Типичная задача для СУБД! AU08(420 знак., 12.08.2016 19:37 - 19:45)
- ну да, несколько раз. получим вместо 3-х недель всего неделю. а было бы памяти нормально - так за час результат был бы готов. - Mahagam(13.08.2016 00:47)
- В варианте 2 производительность при использовании SSD ожидается всего в 20...40 раз медленнее, чем с массивом в RAM. В однопользовательском режиме на "своём" ПК СУБД работают относительно шустро. AU08(216 знак., 13.08.2016 07:42 - 07:52, ссылка)
- линейную скорость сравнили, а теперь сравните latency. потому как запись будет по случайным адресам. думаю, что три порядка разницы наберётся влёгкую. - Mahagam(14.08.2016 17:22)
- Не учите дедушку кашлять. В варианте 2 крайне мало записи по случайным адресам. С учётом почти линейного заполнения БД время доступа в начале будет меньше, в конце больше. Надо просто уметь их готовить! AU08(295 знак., 14.08.2016 18:24)
- Это хорошо, что Вы БД знаете. Вопросик есть теоретический (на примере БД какую Вы бы выбрали) symbions(759 знак., 14.08.2016 23:34)
- Не учите дедушку кашлять. В варианте 2 крайне мало записи по случайным адресам. С учётом почти линейного заполнения БД время доступа в начале будет меньше, в конце больше. Надо просто уметь их готовить! AU08(295 знак., 14.08.2016 18:24)
- линейную скорость сравнили, а теперь сравните latency. потому как запись будет по случайным адресам. думаю, что три порядка разницы наберётся влёгкую. - Mahagam(14.08.2016 17:22)
- В варианте 2 производительность при использовании SSD ожидается всего в 20...40 раз медленнее, чем с массивом в RAM. В однопользовательском режиме на "своём" ПК СУБД работают относительно шустро. AU08(216 знак., 13.08.2016 07:42 - 07:52, ссылка)
- ну да, несколько раз. получим вместо 3-х недель всего неделю. а было бы памяти нормально - так за час результат был бы готов. - Mahagam(13.08.2016 00:47)
- Исходные файлы - текстовые, в PDB-формате. В них ищут секцию SEQRES, где белок записан в виде последовательности аминокислот в трехбуквенном коде. Код переводится в порядковые номера 0-20. Потом из этой последовательности выбирают участки, Ксения(331 знак., 12.08.2016 19:31)
- Скорее всего у Ксении всего одна запись огромной длины. Вопрос в том "как складывать / как считать результат". Ну СУБД легко и относительно быстро решается с использованием индекса для БД результата. AU08(757 знак., 12.08.2016 19:04 - 23:06)
- Большая-пребольшая - это сколько в терабайтах? Неужели нет групп последовательностей, которые точно не встречаются? Можно разбить задачу на 3 или 7 или 21 процессов, =AlexD=(136 знак., 12.08.2016 07:53 - 07:59)
- Так для того и затея, чтобы узнать частоту встречаемости. По сути программа состоит из единственной строки: Array[a1][a2][a3][a4][a5][a6][a7]++; А с конце "обучения" ищут максимум, минимум или что-то еще. А до того, как Array "обучится" никак Ксения(61 знак., 12.08.2016 19:17)
- a1..a7 -- не рандом же? Так что мешает хранить данные в файлах??? - fk0(13.08.2016 17:23)
- Сделайте программу для 6 вариабельных аминокислот и одной фиксированной, пусть это будет самая первая аминокислота, передавайте её тип в параметрах программы. После этого вызовите программу 21 раз, с параметром для каждой из аминокислот. - =AlexD=(13.08.2016 16:15)
- Если вы и это не можете сделать, значит у вас просто недостаточно квалификации для такой работы. - =AlexD=(13.08.2016 16:18)
- Можно разбить на несколько компьютеров, MPICH никто не отменял. - AlexG(12.08.2016 09:21, ссылка)
- Так для того и затея, чтобы узнать частоту встречаемости. По сути программа состоит из единственной строки: Array[a1][a2][a3][a4][a5][a6][a7]++; А с конце "обучения" ищут максимум, минимум или что-то еще. А до того, как Array "обучится" никак Ксения(61 знак., 12.08.2016 19:17)
- А просто разбить на диапазоны? Ну придётся по базе пройтись не один раз, а (21^7)/MEM? Я так понимаю, что исходные данные всё равно много больше этого числа, а значит есть проблема доступа и к ним тоже. А если нет - то не могут в принципе всё Dingo(84 знак., 12.08.2016 05:29 - 05:33)
- Вот всё тот же коллега подсказал -> , может спасти. Dingo(123 знак., 12.08.2016 05:23 - 05:31, ссылка)
- AWE не поможет разместить в адресном пространстве массив размером 3.5GB. Ale3000(182 знак., 12.08.2016 08:11)
- Я под персоналки не пишу, но английская страничка вики вот чего пишет. А вот как застолбить её - уже другой вопрос, я так полагаю - через PAE. Dingo(1140 знак., 12.08.2016 10:04, ссылка, ссылка)
- Ксении нужен один массив 3.5GB. Его в 3GB userland не впихнешь. - Ale3000(12.08.2016 10:09)
- Я под персоналки не пишу, но английская страничка вики вот чего пишет. А вот как застолбить её - уже другой вопрос, я так полагаю - через PAE. Dingo(1140 знак., 12.08.2016 10:04, ссылка, ссылка)
- AWE не поможет разместить в адресном пространстве массив размером 3.5GB. Ale3000(182 знак., 12.08.2016 08:11)
- Сколько последовательностей надо перебрать? И за какое время? - Ale3000(12.08.2016 04:40)
- Для такой задачи не грех воспользоваться Win10-64 и бесплатной MSVS-2015. На C++ или C#. - бомж(12.08.2016 00:48)
- Тогда все деньги с гранта пойдут на компьютер, а мне ничего не достанется :) - Ксения(12.08.2016 00:55)
- Вы - перфекционистка? :) Вопрос - два прохода или один, по моему. - Скрипач(12.08.2016 09:03)
- Все-таки решить задачу за N-проходов. Это займет времени максимум в 2N раз больше. - Крок(12.08.2016 08:51)
- С такими раскладами надо и решение попроще и побыстрее:) Чтобы не насиловать диск то собираем в оперативку N последовательных отсчетов индекс-счетчик, работая с ними или как с массивом или через базу которая разворачивается в оперативке. После 1111111(110 знак., 12.08.2016 02:42)
- Тогда все деньги с гранта пойдут на компьютер, а мне ничего не достанется :) - Ксения(12.08.2016 00:55)