IJL + multithreads + 2 CPU

Тема в разделе "WASM.BEGINNERS", создана пользователем prog, 16 дек 2008.

  1. inviZ

    inviZ Сергей

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    92
    Адрес:
    Хабаровск
    prog

    1. Во-первых, какая версия? По слухам, баг с многопоточностью был в версиях до 1.5 включительно. Но вроде бы в 1.51 исправили.
    2. Даже если 1.51, в чем проблема-то? Ну оберни все вызовы библиотечных функций критической секцией, да и все.
     
  2. prog

    prog New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2003
    Сообщения:
    62
    Адрес:
    Russia
    Использую версию ijl 1.5.4

    Дык, я бы хотел, чтобы они работали параллельно в тредах.
    У программы назначение- сжимать битмапы в jpg, чем быстрее тем лучше.
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    prog
    Думаю как раз это нужно реализовать на асме самому. И быстрее будет, и проблем с многопроцессорными системами не будет.
     
  4. prog

    prog New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2003
    Сообщения:
    62
    Адрес:
    Russia
    В каком смысле самому?
    У меня просто в нескольких трэдах кодируются jpg-ги.
    В смысле- написать свю функц. кодирования в jpg?
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    prog
    Ога.
     
  6. prog

    prog New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2003
    Сообщения:
    62
    Адрес:
    Russia
    Это, мягко говоря, не совсем разумный совет.
    Она быстрее чем в ijl врядли будет работать.
    Точнее- ни когда не будет.
     
  7. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    prog
    Это почему ?
     
  8. prog

    prog New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2003
    Сообщения:
    62
    Адрес:
    Russia
    Потому, что Intel Jpeg Library на то и сделан в Intel, с учетом всех возможностей Intel процсесоров.
    Есть много статей об этом. О реализации DCT и IDCT специально для процессоров Intel с SSE итд.
    В ijl как раз сделано все так, что бы по максимуму задействовать все возможности процессора.
    В Intel люди специально сидели и высчитывали и настраивали код так, чтобы он выполнялся идеально быстро на каждом семействе Pentium.
     
  9. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    prog
    А почему тогда ошибки в нём, да есчо настоко грубые ?
     
  10. prog

    prog New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2003
    Сообщения:
    62
    Адрес:
    Russia
    Эта версия библиотеки не thread-safety.
    Грубо говоря, функции в ней используют для рассчетиов одни и те же структуры в памяти, не задумываясь о том, что в этот же самый момент могут выполняться такие же функции параллельно в этом же процессе в других тредах.
     
  11. prog

    prog New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2003
    Сообщения:
    62
    Адрес:
    Russia
    inviZ
    А откуда инф. о поддержке версиями многопотоковости?
     
  12. inviZ

    inviZ Сергей

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    92
    Адрес:
    Хабаровск
    prog
    http://software.intel.com/en-us/forums/intel-integrated-performance-primitives/topic/50201

    Там только не про поддержку речь была, а про какой-то баг, связанный с многопоточностью.
     
  13. prog

    prog New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2003
    Сообщения:
    62
    Адрес:
    Russia
    Ага, спасибо.
     
  14. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Я не стал бы так уж идеализировать програмистов из Intel. Я не знаю, с учетом чего они и что делают, но даже ихний С-компилер в большинстве случае сливает мелкософтовскому. Это инженеры у них хорошие... прогеры так себе... а маркетологи - "№;"№!"№... извините, вырвалось... :)

    [offtop]
    вспомнилась хохма - на каком-то бенчмаркинге обнаружилось, что AMD'шные процы дают больший прирост производительности при использовании библиотеки от Intel, чем при аналогичной от AMD. Собственно это не хохма, хохма началась, когда выяснилось, что процы от Intel показали лучшие результаты при использовании библиотеки от AMD, чем при использовании своей "проверенной и всеучтенной" от Intel. Я тогда аж улыбнулся.
    [/offtop]

    Так что самописный код - тоже вариант. Правда jpeg - непростой алгоритм, но если есть энтузиазм и немного свободного времени...

    Насчет же библиотеки - я не думаю, что jpeg много выиграет от HT, если бы это был настоящий двухъядерник... Так что ИМХО SetAffinity - то что надо.