LINUX.ORG.RU

Переход на Linux: взгляд разработчика под Windows (перевод)

 , , ,


0

0

Неслабо digg-нутая статья о том, как человек перевёл свою разработку с Windows на Linux.

Судя по написанному, автора либо очень крепко достала предыдущая его ОС, либо он осознанно далеко не беспристрастен.

Подробности.

>>> Оригинал статьи

Ответ на: комментарий от no-dashi

> Уважаемый школьник, VS для коммерсов стоит примерно в 30 раз больше чем по академической лицензии, которая используется в твоей школе или ПТУ! :-)

Уважаемый суровый челябинский модератор, сейчас MSVS 2008 Standart стоит на софткее около 2300 рублей. Для индивидуалов и мелких контор. Бывало и qt покупали индивидуально на человека - жить-то как-то надо. Но ты продолжай, продолжай защищать человека, который не смог поставить студию 2005 на висту. У меня, к примеру, даже шестая с томатой и интеловским компилятором нормально работала под вистой, правда писал я консольное, хотя и тяжелое многопоточное. ;)

PIV
()
Ответ на: комментарий от Reset

Спасибо, то, что нужно. Уже очень похоже на мой цикл, и не сложно совсем, нужно будет попробовать.

GladAlex ★★★★★
()
Ответ на: комментарий от annoynimous

не нужно, по дефолту запускается столько сколько и ядер

Reset ★★★★★
()
Ответ на: комментарий от Demon37

>P.S. Перевод читается тяжеловато
Уж простите, как сумел.

moradan
() автор топика
Ответ на: комментарий от PIV

>Уважаемый суровый челябинский модератор, сейчас MSVS 2008 Standart стоит на софткее около 2300 рублей. Для индивидуалов и мелких контор. Бывало и qt покупали индивидуально на человека - жить-то как-то надо. Но ты продолжай, продолжай защищать человека, который не смог поставить студию 2005 на висту. У меня, к примеру, даже шестая с томатой и интеловским компилятором нормально работала под вистой, правда писал я консольное, хотя и тяжелое многопоточное. ;)

Корпоративные лицензии - странные штуки... удивительным образом автор пишет, что даже не пытался установить студию на висту - он сразу пишет, что не мог этого сделать.

moradan
() автор топика
Ответ на: комментарий от shty

>>годовой доход на кодинге 250-300k$

>вполне реально, к примеру, в ойро..

молодой человек, вы такую кучку в руках когда-нить держали? и ваще дальше МСК выезжать пробовали? Зарплата в 20000$ в месяц (нули пишу специально, вдруг не непонятно) и уж тем более 20000 йоро на кодинге мало реальна. Зарплата программера в NY ~5k-8k$, в Париже ~3k-5k йоро. При этом это до вычеты подоходного налога. Вот кстати небольшой пруфлинк:

http://lamed.livejournal.com/99831.html

Linfan ★★★★★
()

wined3d: Recognize DRI R300 drivers as Mesa.

Интересно, как это повлияет? Счастливый обладатель R300.

mcdebugger ★★
()
Ответ на: комментарий от Reset

> Есть очень специфические задачи для которых он к сожалению нужен.

Я заметил, что у меня лучшие результаты получаются, если количество потоков вдвое больше числа ядер.

annoynimous ★★★★★
()
Ответ на: комментарий от annoynimous

core i7 ? тогда должно 8 вызываться автоматом.

Кстати вызывать omp_set_num_threads более кроссплатформенно, чем выставлять переменную окружения. К программе можно прикрутить ключ командной строки --threads.

Reset ★★★★★
()
Ответ на: комментарий от annoynimous

>Я заметил, что у меня лучшие результаты получаются, если количество потоков вдвое больше числа ядер.

Это если ввод вывод есть. Как пример, на c2d make -j 4 быстрее, чем make -j 2. На вычислительных задачах число потоков таки должно быть равно числу ядер.

legolegs ★★★★★
()
Ответ на: комментарий от Reset

> core i7

Нет, двухголовый core quad

> Кстати вызывать omp_set_num_threads более кроссплатформенно, чем выставлять переменную окружения. К программе можно прикрутить ключ командной строки --threads.

Проблемы индейцев^W виндузятников вождя не волнуют. Все системы, которые мне интересны поддерживают экспорт переменных окружения :)

annoynimous ★★★★★
()
Ответ на: комментарий от Reset

>> Есть очень специфические задачи для которых он к сожалению нужен.

Из любой безвыходной ситуации есть как минимум два выхода. Так что - не нужен.

Klizmoid
()
Ответ на: комментарий от annoynimous

Ключ --threads удобнее для тестов. В стандарте openmp что-нибудь указано про имя этой переменной окружения?

Reset ★★★★★
()
Ответ на: комментарий от Klizmoid

Заказчик хочет видеть приложение в виде плагина к IE. Давай пиши без activeqt, а я на тебя посмотрю.

Reset ★★★★★
()
Ответ на: комментарий от annoynimous

> Нет, двухголовый core quad

Ты как-то хитро с кешем работаешь. На умножении матрицы на вектор на core 2 quad наблюдается замедление если потоков больше числа ядер.

Reset ★★★★★
()

Не, парни, серьёзным разрабам на линуксе будет тяжко.

Deleted
()
Ответ на: комментарий от Reset

>> Заказчик хочет видеть приложение в виде плагина к IE

1. В данном случае заказчик - полный лось, и надо ему это обстоятельно объяснить 2. Если плагин к ишаку - то нафик вообще Qt нужен? Оно точно так же прекрасно будет тормозить и на .net"е, или ещё на каком-нить вендовом гогне.

Klizmoid
()
Ответ на: комментарий от Klizmoid

> В данном случае заказчик - полный лось, и надо ему это обстоятельно объяснить

специфика задачи такова, что без плагина обойтись действительно нельзя

> Если плагин к ишаку - то нафик вообще Qt нужен?

Потому что нужный функционал уже реализован на Qt и работает на нескольких платформах. На какое-нибудь "вендовое говно" всё переписывать будет слишком долго сложно и дорого.

Reset ★★★★★
()
Ответ на: комментарий от Reset

>> специфика задачи такова, что без плагина обойтись действительно нельзя

Что ж это за задача то такая, что требуется плагин к говноослику? Даже представить себе не могу ЗАЧЕМ оно может быть нужно.

Klizmoid
()
Ответ на: комментарий от Reset

>> и работает на нескольких платформах

Говноослик работает (если это можно так назвать) только на одной платформе. Активный Х (почему-то стойко ассоциируется с Чёрным Властелином) - тоже

Klizmoid
()
Ответ на: комментарий от Klizmoid

Коммерческая тайна. Но поверь мне, такие задачи есть.

Reset ★★★★★
()
Ответ на: комментарий от Klizmoid

У тебя в мозгу не укладывается, что некое приложение может работать как standalone так и внутри браузера?

Reset ★★★★★
()
Ответ на: комментарий от Reset

яркий тому пример -- quake3, который есть как standalone так и в виде плагина к браузеру

Reset ★★★★★
()
Ответ на: комментарий от Reset

Если этот "браузер" - ишак, и "внутри браузера" - это через активх а не по-человечески - то смысл сего не укладывается. Вообще.

Klizmoid
()
Ответ на: комментарий от Klizmoid

С netscape-api телодвижений на порядок больше чем с activex. Хотя наше приложение и внутри ff тоже живет.

Reset ★★★★★
()
Ответ на: комментарий от Klizmoid

Как я уже сказал оно живет и в ff, а значит работает не только в венде. Ajax невозможен по тем же самым причинам по которым на нем не сделали quake live.

Reset ★★★★★
()
Ответ на: комментарий от Klizmoid

"большое" standalone приложение уже написано на си++, поэтому если делать java applet, то его пришлось бы делать с нуля, что не вариант.

Reset ★★★★★
()
Ответ на: комментарий от Reset

> Ты как-то хитро с кешем работаешь. На умножении матрицы на вектор на core 2 quad наблюдается замедление если потоков больше числа ядер.

Я фактически заполняю матрицу, просто матричные элементы вычисляются очень хитро. Подозреваю, что кэш там инвалидируется достаточно часто... а вообще хз -- просто привожу как факт. Ну и балансировка полностью динамическая -- может что алгоритмы чудят.

annoynimous ★★★★★
()
Ответ на: комментарий от Klizmoid

есть, но пока еще не доступно пользователям.

Reset ★★★★★
()
Ответ на: комментарий от moradan

> нельзя за 10 минут вычистить весь winapi код, если ты изначально не проектировал его так, что это сделать.

Я так понял, что он там считал много. А в winapi не так много функций для математики. То есть имеем программу, которая должна спросить и пользователя параметры (во время теста это файл или сразу база данных - тогда интерфейс и не понадобится), посчитать и отобразить результат (традиционно последний этап, разработчику часто хватает численных данных).

skwish ★★
()
Ответ на: комментарий от moradan

> это когда на каждой итерации цикла создаётся новый поток. Может быть, неправильно понял.

Потоки создаются до первой итерации цикла. При необходимости потоки повторно используются.

sjinks ★★★
()

Ничего вот дойдет он до потребности в отладчике, и бымц. Будет только gdb (очень хороший отладчик, но сииильно отличающийся от отладчика в visual studio). Хотя у него многопоточность, может он по логам отлаживается.

eXOR ★★★★★
()
Ответ на: комментарий от HappySquirrel

Это недорого, хотя на 3 суммы с умножением может и не дать выигрыша

Не знаю, как с суммой, но при побитовой инверсии блока памяти четырехпоточное приложение побило однопоточное (AMD Phenom(tm) II X4 940 Processor @ 3 GHz) только при размере блока больше 15,000 тридцатидвухбитных слов.

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

        xor     edx, edx
        mov     rsi, rsp
        mov     DWORD PTR [rsp], edi
        mov     edi, OFFSET FLAT:parallel.omp_fn.0
        call    GOMP_parallel_start
        mov     rdi, rsp
        call    parallel.omp_fn.0
        call    GOMP_parallel_end 

«Параллельная» функция вызовет omp_get_num_threads() и omp_get_thread_num() и выполнит несложные арифметические преобразования для определения количества итераций на каждый поток.

Так что, видимо, трёх сумм с умножением будет недостаточно.

sjinks ★★★
()
Ответ на: комментарий от Erik_der_Zweite

> А свободное окружение и инструменты -- скачал и пользуйся на здоровье.

А как они собираются собирать виндовый аналог приложения (читал по диагонали)? Неужели через mingw?

sjinks ★★★
()
Ответ на: комментарий от Erik_der_Zweite

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

В некоторых крупных конторах немного не так. Есть управление информационной безопасности, которое определяет кому и какой софт можно ставить. Они получают свои откаты от различных антивирусных контор и составляют корпоративные стандарты. Оправдание: уязвимости в вашем бесплатном софте могут повлечь за собой взлом корпоративной сети/вирусную эпидемию/etc, что приведет к простою или утечке коммерческой тайны.

Если скажут писать на C# в блокноте и компилировать с помощью mono - так и нужно делать.

На самом деле программисты тайком ставят всякие удобные инструменты, используют "непроверенные" открытые библиотеки - но все это под угрозой выговора и других морально-материальных унижений. А просто потому проприетарными инструментами за разумные деньги и сроки продукта не сделаешь.

skwish ★★
()
Ответ на: комментарий от Reset

>в qt еще есть компоненты, которые есть только в коммерческой версии, например activeqt

Вообще-то вроде как все солюшены теперь тоже LGPL. И ActiveQt тоже. Такие дела.

eduard_pustobaev ★★
()
Ответ на: комментарий от Als

>и что? там специальное исключение для комерческих разработчиков :-) хочешь на QT зарабатывать бабло - будь доб делиться или кодом или баблом.

LGPL есть LGPL. Всё остальное фигня.

eduard_pustobaev ★★
()
Ответ на: комментарий от sjinks

>А как они собираются собирать виндовый аналог приложения (читал по диагонали)? Неужели через mingw?

а что? главное заюзать правильный инструмент :)

http://tdragon.net/recentgcc/

shty ★★★★★
()
Ответ на: комментарий от Reset

Мм... Вы тут столько написали по этой теме, что стесняюсь спросить... У меня вот в assistant написано "The ActiveQt modules are part of the Qt Full Framework Edition and the Open Source Versions of Qt.". Это не то, о чём речь, или доки врут?

unC0Rr ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.