Свежие комментарии
Title | Comment |
---|---|
Да, если вы не используете гистограмму, то более ни на что э |
Да, если вы не используете гистограмму, то более ни на что эти манипуляции не влияют. Если используете - то полезно иметь там правильные значения, ибо индикация пересвета там где его нет (равно как и наоборот) - ухудшает результат. |
М-м... Хотелось уточнить один момент. В отсутствие фильтров |
М-м... Хотелось уточнить один момент. В отсутствие фильтров все эти манипуляции с ББ не имеют ведь никакого практического значения (кроме показа реальной гистограммы) так ведь? |
Только речь идет не о софтверной компании, софт только для с |
Только речь идет не о софтверной компании, софт только для себя. Нагрузка постоянно растет и уже видны первые ласточки пизде###а :) |
Анатолий, я начну новую ветку, а то не влазит уже. "Перепис |
Анатолий, я начну новую ветку, а то не влазит уже. "Переписать кусками по полгода (месяцу)" - во многих случаях кажется (а иногда и является) просто неправильной идеей. Ну вот представь, что проекту - 10-15 лет, это значит что он стартовал в доисторические времена с совершенно другими требованиями и т.п. У него архитектура - просто может быть неподходящей к сегодняшнему дню и оставлять ее - означает оставлять старые ограничения и старые проблемы. Собственно, синдром третьей версии - это и есть тот случай, когда выкинуть старое и написать с нуля - кажется правильным. Оно может и быть правильным, только это невозможно оценить на старте. |
Ты правильно описал путь к пизде###у - "варез программируют |
Ты правильно описал путь к пизде###у - "варез программируют в сторонке три года и потом пытаются перевести на него продукты" На самом деле переписывать с нуля надо так, чтобы цикл переписывания занимал максимум полгода (лучше - месяц) и все приложения тестировать/адаптировать в процессе переписывания. Если все за такой срок не переписывается - надо переписывать куски. Моя "мегаплатформе" такие "перепишем" уже переживала. Переписывал куски, в которых архитектура "сделаем по-быстрому, а потом начнем латать походу" начала сильно раздражать. |
"Свой дистирбутив" - это примерно то, чем занимаются произво |
"Свой дистирбутив" - это примерно то, чем занимаются производители железок с линаксом внутри. Т.е. выброшен максимум, нет ни одного лишнего модуля или программы, и ядро патчится под специфику конкретной задачи, не задумываясь о том, что кто-то может не заработать после такого патча. это уже начало пути к "напишем свою OS" :) вполне нормальное решение для большого масштабируемого проекта с суровыми требованиями к производительности. кстати, если мне не изменяет, то в какой-то момент у оракла был свой дистрибутив линакса для максимальной производительности сервера БД. |
По поводу вчерашнего у Яндекса, Самохвалов 10000 потоков зап |
По поводу вчерашнего у Яндекса, Самохвалов 10000 потоков запустил? |
Мне кажется хуже когда в компании застой, при этом все чувст |
Мне кажется хуже когда в компании застой, при этом все чувствуют что уже почти уперлись и пора, пока не поздно, отвлечься и подумать о будущем. Но на верху сверху сидит генератор идей, живущий в своем идеальном мире, у которого все отлично работает и есть 300% запас прочности. Из собственного негативного опыта делаются абсолютно неверные выводы. В итоге те кто внизу вязнут в болоте рутины... старый багаж все сильнее тянет назад. Никому и в голову не приходит приподнять голову и осмотреться что происходит вокруг (в т.ч. в плане организации и оплаты труда). И это при не кислых оборотах компании. Как можно охарактеризовать такую ситуацию? |
Он там гонит (в другом месте) - криптуху на GPU программиров |
Он там гонит (в другом месте) - криптуху на GPU программировали и до CUDA. В GPU Gems3 про AES пишут, но вообще довольно многое можно. Другой вопрос, что с локальной памятью удобнее. |
Вот тебе еще - Каталов из Elcomsoft рассказывает, зачем Садд |
Вот тебе еще - Каталов из Elcomsoft рассказывает, зачем Саддам Хусейн покупал вагон игровых приставок :) L e x a |
Вот Рамблер бы поднялся на эти бабки! |
Вот Рамблер бы поднялся на эти бабки! |
был гипотетический шанс выиграть 2000$... |
был гипотетический шанс выиграть 2000$... |
Я припоминаю, как у нас в Рамблере был администратор помешан |
Я припоминаю, как у нас в Рамблере был администратор помешанный на rc5crack или как оно тогда называлось (не помню). И я со своих серверов эту штуку выжигал каленой метлой.... |
одно время назад антивирусы записали дистрибутовских клиенто |
одно время назад антивирусы записали дистрибутовских клиентов в трояны. |
Общая шина - это часто синдром третьей версии. Первая как-то |
Общая шина - это часто синдром третьей версии. Первая как-то работала, вторая - это куча патчей на первой, чтобы реально работать. В результате накопился опыт, денег достаточно (первые две версии - успешно продаются) и возникает желание сделать "по хорошему" - спроектировать все правильно, все предусмотреть и прочая. Потом этот варез три года программируют, возможно в стороне от основного процесса, хуже когда отвлекая нужные ресурсы, а потом пытаются перевести на него продукты компании. Бывает часто, что и переводят с разрушительным эффектом. Бывает - просто палят бабки, это лучше и совсем не страшно. |
По-моему, "общая шина" (т.е. мегапроект, под который можно п |
По-моему, "общая шина" (т.е. мегапроект, под который можно пару лет заниматься хней на бабки работодателя) - это болезнь скорее начального этапа, когда вместо создания продукта создается мега-инстурмент для создания продукта. Чтобы в стабильном состоянии компания массово впала в такое - не видел. Обычно подобной хней занимаются специально выделенные люди в качестве перспективного проекта, нисколько не мешая процессу (но переводя бабки хозяев попусту). У стабильных компаний обычно другая болезнь - в какой-то момент приходят новые люди и говорят "а давайте-ка перепишем все с нуля в 100 раз лучше", да еще и выпихивают "старичков". Вот тут-то как раз и может придти сибирский зверек. Походу могут и "общую шину" начать разработывать, но это лишь часть маразма. Я лично "перепишем все" наблюдал на своем продукте, (ранее помянутом) для компании А. Так совпало, что рост компании с наймом новых людей совпал с очередным повышением моих расценок, и на волне возмущения меня решили заменить. Найденные через полгода орлы, количеством человека 3, вместе со старыми штатными работинкам решили сыграть в "перепишем все" (ведь было известно, что там примерно 9 месяцев моей работы на разработку - видимо начальству пообещали толпой за 3 месяца управиться). Через 3 месяца меня порадовали "мы переписали". Через год еще ничего не работало, вышла виста и у компании не оказалось продукта под нее. Еще через 9 месяцев выкатили сырой продукт и теряя репутацию доводили его до ума некоторое время. Слава богу, не умерла компания - обошлись без "общей шины". |
Оно само проходит. В прошлые разы я ничего не делал для этог |
Оно само проходит. В прошлые разы я ничего не делал для этого |
Опять слетела кодировка в RSS. Клиент вопросики кажет. |
Опять слетела кодировка в RSS. Клиент вопросики кажет. |
Попробовал тупое копирование: h_idata -- cudaMemcpy() - |
Попробовал тупое копирование: // includes, system // includes, project #define NUM_BLOCKS 1 __global__ void Copy(char *from, char *to, int n) int main(int argc, char** argv) // host vars // device vars CUT_DEVICE_INIT(argc, argv); //pinned memory mode - use special function to get OS-pinned memory //allocate device memory //initialize the memory //copy host memory to device memory unsigned int timer = 0; CUT_SAFE_CALL( cutCreateTimer( &timer ) ); // copy host to device CUT_SAFE_CALL( cutStopTimer( timer)); printf("Elapsed: %f seconds\n", elapsedTimeInMs / (float)1000); // write to file //clean up memory CUDA_SAFE_CALL(cudaFree(d_idata)); CUT_EXIT(argc, argv); В документации про глобальную память вроде ничего про ограничения не сказано... Что я не так делаю в этом простом копировании??? |
В nginx trylock делается в каждом проходе по eventloop. 7 и |
В nginx trylock делается в каждом проходе по eventloop. |
Т.е. у нас всетаки получается опросная модель? Или предлагае |
Т.е. у нас всетаки получается опросная модель? Или предлагается из select`а раз в секунду (цифра с потолка) вываливаться и пробовать захватить mutex (в каждом процессе)? Мне кажется это плохая затея, в таком случае лучше использовать сценарий А, а еще лучше SCM_RIGHTS. |
nginx is very well documented... На процессах, по меньшей м |
nginx is very well documented... На процессах, по меньшей мере на FreeBSD Блокировки - на mutex. Как именно лечится обсуждаемая проблема - не смотрел. |
Алексей, вы общаетесь с Игорем, поэтому должны знать, у него |
Алексей, вы общаетесь с Игорем, поэтому должны знать, у него воркеры на потоках или процессах? |
Опрашивать mutex нужно чаще, чем время заполнения backlog, ч |
Опрашивать mutex нужно чаще, чем время заполнения backlog, что на самом деле довольно редко. |
В первом варианте меня как раз и смущают лишние wake up, все |
В первом варианте меня как раз и смущают лишние wake up, все предыдущие посты на эту тему. По второму... mutex отвечает за помещение хэндла серверного сокета в select? |
Да google идет этим путем, только сегодня за обедом обсуждал |
Да google идет этим путем, только сегодня за обедом обсуждали с коллегами. Но тут опять же вопрос что мы понимаем под своим дистрибутивом и чего хотим добиться.. Google активно патчит (правит) все подряд, а Ubuntu вроде вообще ничего не трогает, а просто дебы варит и скрипты лабает. У себя мы максимум свой репозиторий внутренний развернули со своими пакетами, дальше не пойдем. Когда-то я пытался с нуля свой "дистрибутив" делать, тянул себя за уши, делал сбрку всего сам. Убил кучу времени... оно корректно грузилось и выключалось, этим можно было пользоваться, но меньше остальных не стало. Для себя понял что если хочется поиграться, то берем генту, отличный компромисс..вроде полноценный дистрибутив и гемор есть, а если надоело все пересобирать, то можно бинарые пакеты с OpenOffice и Mozilla поставить :) Анатолий, по предыдущим постам зачет :) |
Все может быть гораздо хуже: у нормальной софтверной компани |
Все может быть гораздо хуже: у нормальной софтверной компании на начальном этапе все растет по экспоненте. Ну допустим, в два раза в год. Году на 4-5м может наступить полное видимое благолепие и запас устойчивости... на год-два. Или на 7-8-м году, видел такое. Вот на фоне оного благолепия зарождаются монстры, которые за год-два могут съесть компанию изнутри. По очень большому числу причин, "общая шина" - это симптом, а не такой монстр. А причина - в том, что люди с экспоненциальной скоростью меняться обычно не могут, а при миллионном-многомиллионном обороте (и соответствующем размере компании со всеми партнерами, дилерами и прочая) - изменения быстро сделать тоже нельзя. |
В lua программистах нет необходимости, я ничего не имею прот |
В lua программистах нет необходимости, я ничего не имею против lua сообщества, но я осилил спецификацию языка и внутреннего API за 2 часа в горячей ванной :) Вторая часть для меня более интересна, а сам язык очень прост, серьезно можно не заморачиваться. |
Алексей, огромное спасибо за интересную статью! У меня при |
Алексей, У меня при работе с CUDA на 8800GTX возникли странные сложности с глобальной памятью :( Задача: есть текстовый файл ~50Мб, есть словарь из 16384 слов, надо найти индексы первого вхождения каждого из этих слов, т.е. осуществить поиск. Естественно первое, что пришло на ум: запустить N блоков по M тредов, чтобы M*N=16384 параллельных тредов. Так и сделал. Но вот беда: при поиске в 50Мб выдаёт, что ни одного слова не нашёл (алгоритм - банальный брутфорс). Тогда я сократил задачу и сделал 1 блок с 1 тредом в грайде (однопоточный поиск соответственно только 1-го слова из словаря, в файл в котором ищем вписал это слово в самый конец) - получилось то же самое :( Получается очень странно - по идее если мы выделим память с помощью cudaMalloc() и скопируем в неё из хоста - все потоки должны этот массив видеть _полностью_ , так ? А у меня все потоки видят только "по 10 мегабайт" (если слово поставить в пределах первых 10 Мб и вернуть j=0 - тоже находит). Где могут быть "грабли" при работе с глобальной памятью? P.S. Собсно вот исходник самого поиска для 1 треда: // for (j = 0; j <= (n-m); j++) // if(offsets[sid+1]>0) из main() запускаю его так: NUM_BLOCKS и NUM_THREADS за'define'ны и равны 1, т.е. я даже не пользую многпоточность и всё равно не работает :( |
Про "захватили власть программисты" могу предложить простой |
Про "захватили власть программисты" могу предложить простой тест, позволяющий отличить полный пиз##ц от благодати: посмотри, кто платит деньги. Если те же программисты, что заххватили власть, о там либо благодать, либо лавка дохнет очень быстро. Если же программисты захватили власть распоряжаться чужими бабками - то да, чаще всего пи###ц |