МАЙДАН - За вільну людину у вільній країні


Архіви Форумів Майдану

Використання Python в наукових цілях /доповідь в ІК НАНУ 5.02.09

02/04/2009 | Dmitrey
У четвер (05.02.09), в 15-00, у к. 414-а корп. 3 ІК НАНУ (www.icyb.kiev.ua) відбудеться доповідь щодо використання мови Python (python.org) в наукових цілях як альтернатива традиційним С, С++, Fortran та (у першу чергу) MATLAB. Також буде розглянуто мову Fortress (спадкоємець Фотрана від Sun Microsystems).

Запрошуються всі бажаючі. Найвірогідніше, доповідь буде проводитись російською мовою.
Для оформлення перепустки через прохідну ІК необхідно відправити лист на tbardadym@gmail.com з темою "Семінар з мови Python", в повідомленні вкажіть ПІБ.
Переглянути тези презентації у вигляді PDF-файлу можна за адресою
http://tinyurl.com/PythonPresentation-pdf

Основні теми:

* Переваги та недоліки Python порівняно з Fortran, С, С + +, MATLAB

* Основні дистрибутиви Python: СPython, IronPython, Jython

* OSI - схвалена ліцензія мови Python без Copyleft, що дозволяє використовувати його для закритого коду

* Основні наукові бібліотеки Python (numpy, scipy, matplotlib)

* Доступ до низькорівневих бібліотек Blas, LAPACK

* Основні наукові дистрибутиви Python: SAGE, PythonXY, EPD

* OpenOpt (http://openopt.org/) - безкоштовне середовище чисельної оптимізації (з OSI - схваленої ліцензією BSD без Copyleft), що розробляється відділом оптимізації ІК НАНУ.

* Застосування Python з кодом C, C + +, Fortran, R, MATLAB, і т.і.

* Спадкоємець Фотрана - мова Fortress від Sun Microsystems, її порівняння з Python та іншими мовами.

Відповіді

  • 2009.02.04 | Skapirus

    Поставив в новини

    Дайте блск знати, чи хтось прийшов за цим оголошенням. І якщо можна, дайте тут повідомлення, чи можна десь буде завантажити саму презентацію повністю. Я знаю людей, які працювали в Python та добре про нього відзивалися. Сам на жаль не зможу відвідати Вашу лекцію.
    згорнути/розгорнути гілку відповідей
    • 2009.02.06 | Dmitrey

      Re: Поставив в новини

      Дякую, Skapirus.
      Окрім 7-8 людин з відділу оптимізації та 7-8 з інших відділів ІК НАНУ прийшли ще четверо, але я не знаю, чи то вони дізналися на цьому сайті, чи на інших (я давав об'яви на форумах python.su, LOU, КПІ та КНУ).
      Один зі слухачів знімав доповідь на камеру, але наразі я щось не можу з ним зв'язатись, якщо вдасться - виложу це в інтернет.
      згорнути/розгорнути гілку відповідей
      • 2009.02.06 | Octavian Augusus

        Re: Поставив в новини

        "Це" краще не викладати IMXO (або лише аудіо) - доповідь була дуже непогана, ала ви все розповідали стіні та дошці ;)
        Мова "fortress" виглядає дуже цікаво, з MPI дійсно така морока :)
  • 2009.02.05 | igorg

    Ідея взагалі то гарна, але на жаль

    скласти конкуренцію MatLab практично важко. Наразі це дуже сильний проект який інтенсивно розвивається. Його задекларовані аналоги вкрай слабкі, а найгірше, їх надійність й сервіс дуже низький.
    На жаль, MatLab дуже дорога програма навіть із знижками для ВНЗ.
    Тому, здається, єдиною перевагою пропонованого перед MatLab є безкоштовність.
    згорнути/розгорнути гілку відповідей
    • 2009.02.05 | kwark

      Re: Ідея взагалі то гарна, але на жаль

      Python - одна з найкращих (динамічних) об'єктно-орінтованих мов програмування, яка широко використовується для комерційного і прикладного програмування. А тому її використання зменшує шлях від досліджень до готового продукту у декілька раз.

      Чи можна щось подібне сказати про Матлаб?
      згорнути/розгорнути гілку відповідей
      • 2009.02.06 | igorg

        Мatlab взагалі не є мовою програмування

        Скоріше це середовище для моделювання. Має декілька сильних сторін. Перше: матрична арифметика є його органічною частиною. Уталітарно можна сказати, що в ньому можна працювати майже без циклів. Друге: потужні цільові пакети, що містять набір функцій предметної області. Функції створено гарними фахівцями, є тексти, є посилання на джерала й авторів. Скажімо, автором пакету зі сплайнів є Carl de Boor, один із кращих фахівців. Третє: прекрасна документація й демонстраційні модулі з відкритим текстом. Четверте: надбудова для візуального моделювання Simulink. Незамінна, коли потрібно моделювати паралельні процеси. Тому взагалі-то й порівнювати такі речі некоректно, через дещо різне призначення, різні параметри хоч і схожі функції.
        Скажімо я користуюсь для моделювання алгоритмів й пристроїв обробки сигналів. Дозволяє пройти весь цикл від загального алгоритму до діючої моделі пристрою програмованої логіки за мінімум часу.
        Найкраще можна ознайомитись www.exponenta.ru, або на сайті виробника.
        згорнути/розгорнути гілку відповідей
        • 2009.02.06 | Dmitrey

          Re: Мatlab взагалі не є мовою програмування

          Я працював у МАТЛАБ 3 роки та навіть викладав його студентам, тому хочу вставити свої 5 копійок.
          По-перше, я не можу погодитись що "в ньому можна працювати майже без циклів". Є дуже багато обставин, де без циклів просто ніяк не обійтись, наприклад як ви пропонуєте написати на МАТЛАБ

          while some_cond == True:
          do_something()

          або

          for i in xrange(maxIteration):
          do_something()
          if some condition: break

          Інша річь, що замість циклів дуже зручно користуватись матричними операціями, такими як A = B * C або A = B ./ C
          Але у матлаба вже давно нема монополії на цю зручність, наприклад Python (+numpy) пропонує майже теж саме, а Фортресс, мабуть, ще краще (якщо дивитись у юнікоді). На жаль, Фортресс ще дуже сирий для використання, і ще невідомо, чи вдасться йому завоювати собі гідне місце.

          По-друге, у матлаба такі недоліки (щонайменьше, були 2 роки назад, не знаю, чи виправили вони щось? (бо з того часу я ім майже не цікавився)):
          1) ООП таке незручне, що ім майже ніхто не користується (хоча я бачив, що за останні 2 роки вони там щось покращили)
          2) передача аргументів лише через копіювання, нема передачі за посиланнями (не знаю, може вже є?)
          3) (жах!) нема операцій +=, -=, *= і таке інше.
          4) із-за 1) та 2) дуже багато доводиться користуватися global, що є незручно та bug-unstable (особливо для великих проектів, де працюють різні програмісти). До того ж, це робить код меньш читабельним.
          5) Те, що можна користуватись МАТЛАБОМ у нашій країнї на халяву НАРАЗІ ще не є гарантія того, що це буде продовжуватися завжди. До того ж, усе більше клієнтів (особливо з закордону) не бажають мати ніяких потенційних проблем із неліцензійним ПЗ. А ліцензійний МАТЛАБ коштує дорого навіть для Заходу (на жаль, вони не тримають свої ціни у html-сторінках, але ліцензія МАТЛАБУ чи якогось його тулбоксу навіть на одного програміста коштує більш 1000$, а для організації - ще у 4-5 разів більше).

          Дивіться також мій попередній лист щодо МАТЛАБ vs Python, який я посилав до МОН (звичайно, безрезультатно, бо там як раз і сидять розповсюджувачі MATLAB та іншого платного ПЗ, які мають власний відсоток від продажів):
          http://www2.maidan.org.ua/news/index.php3?bn=maidan_osvita&key=1198753843&action=view
          згорнути/розгорнути гілку відповідей
          • 2009.02.06 | igorg

            Я ж і кажу, що Matlab не є мовою програмування

            Тому, як на мене, спроба притягнути його для створення кінцевих програм є зайвою. Так само як і досить серйозне ускладнення із програмуванням, підключенням хелпу і т.п., що робиться в останніх версіях. MatLab не призначений для того аби створювати кінцевий продукт для користувача. Це середовище для моделювання, яке дуже суттєво скорочує час розробника при розробці алгоритмів й пристроїв. Звідки й гарна ціна вважаю. Бо воно того варте. З іншого боку це дуже гарне середовище для навчання, але тут політика фірми не дуже дружелюбна :), втім за руку теж не хапають.
            Ось який, наприклад, шлях розробки цифрового пристрою (скажімо Фур'є процесора): перевірка формул у пакеті MathCad, програмка у MatLab для відладки алгоритму, розрахункова модель в Simulink з її поступовою деталізацією, модель в Altera DSP Bilder (Simulink) з врахуванням архітектури й розрядності, перенесення моделі в середовище проектування Altera або Xilinx (майже один до одного). Принаймні для цифрової обробки нічого кращого не бачив. З MatLab працюю з DOS версій. Надибав якось цей пакет ще для перших 286 персоналок.

            Octave я спробував, але враження вкрай погане, "висне" на елементарних операціях, документація погана, пакетів розширення нема. Можна рекомендувати лише як матричний калькулятор. Втім можливо я не все знаю, але я брав софт якраз за лінком із вашої гілки.
            Втім Ваша тема актуальна, але нмд не варто вважати Python альтернативою MatLab. НМД МОН розмовами й наказами про дотримання авторських прав просто робить реверанс виробникам. Не зустрічав у ВНЗ ліцензійного MatLab :), а от застосування майже масове.
            згорнути/розгорнути гілку відповідей
            • 2009.02.06 | Dmitrey

              Re: Я ж і кажу, що Matlab не є мовою програмування

              > З іншого боку це дуже гарне середовище для навчання, але тут політика фірми не дуже дружелюбна :), втім за руку теж не хапають.

              Не хапають лише тому, що не можуть цього зробити (в Україні, наразі)
              Як тільки буде така можливість, то почнуть.
              Або почнуть наші ж правоохоронці, щоб підзаробити грошенят на хабарях (я про таки випадки вже чув), і їм байдуже, що там Mathworks думає з цоьго приводу.
              Як казав один з президентів США, "мають значення не наміри, а можливості". Тож краще, якщо ні в кого не буде можливості притягнути вас чи ваших клієнтів до відповідальності, фінансової чи будь-якої іншої. Це вже зрозуміли у Європі, Китаї і ще багато де, тому переводять освітній процесс на відкрите ПЗ, а тому там воно почне швидше розвиватися та прискорить розробку конкурентньоспроможних аналогів комерційному ПЗ.

              Щодо прикладів, які ви наводили - дійсно, аналога Simulink у Python наразі нема.
              Щодо перевірки формул - я не знаю, що саме тут мається на увазі, але раджу подивитись вільні ПЗ SymPy, Pythonica, Axiom, Maxima. З ыншим ПЗ що ви написали я не працював. Але знаю, що дуже багато ПЗ з МАТЛАБу має вільні життездатні аналоги у Пітон, зокрема чисельна оптимізація, інтегрування, розв'язування систем дифференційних рівнянь, і таке інше. Зокрема можна подивитися
              http://pypi.python.org/pypi?:action=browse&show=all&c=385
              http://scipy.org/Topical_Software
              згорнути/розгорнути гілку відповідей
              • 2009.02.07 | igorg

                Дякую, Ви берете участь у якихось проектах з розвитку

                вільного ПЗ? Маю намір дещо втілити із обробки даних і сигналів за допомогою сплайнів. Тому може підкажете який проект є найбільш ходовий, аби зусилля не пішли в пісок. Мій e-mail: sheleviv@gmail.com
                Стосовно вільного ПЗ то потенційних заперечень нема, треба над цим працювати. Щодо MatLab то таки так, доки є можливість - користуватимемось :).
                згорнути/розгорнути гілку відповідей
                • 2009.02.07 | Dmitrey

                  Re: Дякую, Ви берете участь у якихось проектах з розвитку

                  >Ви берете участь у якихось проектах з розвитку вільного ПЗ?
                  Так, я розробник ВПЗ OpenOpt (чисельна оптимізація).

                  >Маю намір дещо втілити із обробки даних і сигналів за допомогою сплайнів. Тому може підкажете який проект є найбільш ходовий, аби зусилля не пішли в пісок

                  На жаль, тут допомогти не можу, бо я не є фахівець у цьому, а користуватись googlе ви мабуть вмієте не гірше за мене.

                  Краще спитати у scipy-user mail list (http://scipy.org)

                  Якщо щось напишете на Пітоні - було б дуже доречно поставити посилання тут (Пітон-проекти українських розробників)
                  http://python.su/forum/viewforum.php?id=30

                  Доречі, є в мене намір попрохати власника форуму добавити підфорум саме про застосування Пітону у науково-інженерних напрямках.
                  згорнути/розгорнути гілку відповідей
                  • 2009.02.09 | Skapirus

                    Пропозиція

                    Dmitrey пише:
                    > Доречі, є в мене намір попрохати власника форуму добавити підфорум саме про застосування Пітону у науково-інженерних напрямках.
                    Я не знаю, чи це можливо на даний момент і в принципі, бо треба буде просити адмінів, які просто додадуть новий форум при достатній кількості користувачів та дописувачів. Можливо, Вам підійде інший варіант, а саме - писати на цьому форумі (тема наскільки я зрозумів цікава читачам), а узагальнення найцікавішого робити через Майдан-Вікі (http://maidanua.org/wiki), що також дозволить популяризувати Ваш проект через новини сайту. Якщо підтягнеться достатня кількість людей, то думаю можна буде просити адмінів організувати новий форум.
  • 2009.02.11 | Dmitrey

    Стаття "Використання мови Python для науково-технічного ПЗ"

    До вашої уваги пропонується стаття "Використання мови Python для розробки науково-технічного програмного забеспечення".
    Насамперед це альтернатива найбільш поширеним на цей час в Україні MATLAB, Pascal (що задіяні в освіті), також наводиться порівняння з C та Fortran.
    Прочитати можна тут
    http://www.developers.org.ua/archives/dmitrey/2009/02/11/python-for-science/


Copyleft (C) maidan.org.ua - 2000-2024. Цей сайт підтримує Громадська організація Інформаційний центр "Майдан Моніторинг".