Решен Кой език да избера Форум за разработка и програмиране

Навигация

Изследователски връзки

Реклама

DVD с Ubuntu, USB стикове и тениски наличен в магазина за безплатна продажба

избера

Ако имате проблеми с поддържането на връзка, изключете и след това се свържете отново от тази връзка, като поставите отметка в квадратчето
Влезте автоматично при следващите ми посещения.

  • У дома
  • »Форум
  • »Разработка и програмиране
  • " [Решено] Кой език да избера ?

# 1 на 27.04.2009 г., в 14:13

[Решено] Кой език да избера ?

В момента съм на стаж (в продължение на 6 месеца) и ще ме накарат да кодирам добро малко нещо (ще трябва да забравите акцентите, не мога да ги поставя с немската си клавиатура!).

Моето приложение ще трябва да сегментира добро голямо 3D изображение (от порядъка на 3-4 GB), след това да извърши статистическа обработка и да оцени функциите на Minkowski на изображението. След това ще е необходимо да се извлекат N проби от доброто голямо изображение и да се повтори същото, т.е. (обработка на статията + Минковски).

След това трябва да мога да стартирам различни изчисления чрез мулти-процесори.

И така, какво ще кажете за езика? C ++, Fortran или Python/Fortran ?

Честно казано, имам няколко песни като C ++ и Fortran, които вървят по-бързо, или да използвам ITK (което далеч не е задължение, тъй като искам да направя "просто" праг на черно и бяло). Също така се страхувам от управлението на питоничната памет (както се страхувам да завърша с 1235x моя 3GB файл в памет! Дори ако машината има 16GB RAM, това може бързо да навреди)

Благодаря ви, че любезно хвърлихте светлина върху моя толкова тъмен фенер по този въпрос (аз не съм информатик по обучение!)

Последно редактирано от Swaraj (Le 12/05/2009, в 10:58)

# 2 На 27.04.2009 г., в 14:20

Re: [Решен] Кой език да избера ?

Като цяло, когато правим обработка на изображения, вместо това използваме C.
Обектното програмиране отнема много памет в сравнение с императивното програмиране .
Всеки екземпляр на обекта пренаписва методите в паметта срещу 1 единично записване за функция

Като цяло при изображенията, ние сме склонни да искаме да намалим размера на обработваните данни доста, често използваното решение е да превключим на 256 цвята на пиксел и следователно да ги кодираме на знак, а не на int. В крайна сметка спестява много памет.

[редактиране] Mea Culpa, харесвам много правилно посоченият пространствен гном, той трябва да се чете императивен и нефункционален. Срам ме е и съм объркан от тази размяна на термини [/ редактиране]

Последно редактирано от tar_NeFyS (Le 28/04/2009, в 00:23)

# 3 27.04.2009 г. в 14:41

Re: [Решен] Кой език да избера ?

Ако съм го разбрал правилно, в C, първо извиквам изображението си в паметта и след това извършвам обработката чрез функции, които имат указатели за параметри към изображението?

И мога да направя mm работата във FORTRAN или Python + FORTRAN (тази, за която се чувствам зле) ?

често използваното решение е да превключите на 256 цвята на пиксел и следователно да ги кодирате на знак, а не на int

Това променя нещо върху скоростта на изпълнение ?

# 4 27.04.2009 г. в 15:19

Re: [Решен] Кой език да избера ?

Всеки екземпляр на обекта пренаписва методите в паметта срещу 1 единично записване на функцията

Това наистина се казва много бързо, бих искал да знам на какво се основаваш, за да кажеш това. И без това не е на добър компилатор. Това не е така, защото на нивото на кода са капсулирани методите и полетата, които ще бъдат дублирани при компилация.

Второ, C не е функционален език. Той поддържа структурирано императивно програмиране, а не функционално програмиране. LISP, OCaml и Haskell са примери за езици, поддържащи функционално програмиране.

И така, какво ще кажете за езика? C ++, Fortran или Python/Fortran ?

Очевидно ще имате проблеми с производителността, така че избягвайте интерпретиран език: от моя страна съветвам да не използвате Python. Fortran, C или C ++ може да са подходящи: бих направил това в C ++, но преди всичко използвайте езика, който знаете най-добре.

Космическият гном

Последно редактирано от Le Farfadet Spatial (Le 27/04/2009, в 15:20)

# 5 на 27.04.2009 г., в 15:52

Re: [Решен] Кой език да избера ?

И без това не е на добър компилатор. Това не е така, защото на нивото на кода са капсулирани методите и полетата, които ще бъдат дублирани при компилация.

Можете ли да ми дадете пример за добър компилатор за C ++ и/или Fortran? В противен случай за всеки случай мога ли да заредя изображението в основната програма и да използвам указатели към изображението като атрибути на обекта ?

И още един последен съвет, мога ли да използвам ITK (библиотека от шаблони на C ++) с FORTRAN код ?

Признавам, че се колебая между C ++ и Fortran внезапно !

# 6 На 27.04.2009 г., в 20:26

Re: [Решен] Кой език да избера ?

Всъщност това зависи от архитектурата на вашата мултипроцесорна машина и от управлението на паметта: памет, споделена между процесорите или не.
езиците, използвани на многопроцесорни машини, често са C с библиотеките MPI/PVM или FORTRAN и понякога ада.

"- Седналият интелектуалец стига по-малко далеч от разходката."
Морис Биро - Такси за Тобрук
Мишел Одиар

# 7 на 27.04.2009 г., в 22:14

Re: [Решен] Кой език да избера ?

Можете да ми дадете пример за добър компилатор за C ++ и/или Fortran ?

Gcc е чудесно за C ++ (да се използва чрез G ++). За Fortran установих, че G95 е доста добър по това време. Като казах това, за Fortran трябва да кажа, че съм склонен да използвам компилатора, предоставен от машинния конструктор. По отношение на архитектурата на IBM, аз наистина оценявам Xlf. В архитектурата на Intel Ifort е силно препоръчителен.

езиците, използвани на многопроцесорни машини, често са C с библиотеките MPI/PVM или FORTRAN и понякога ада.

Това е и моят опит. Можете обаче да правите неща, които се представят добре в C ++. Единственото нещо е, че C ++ отнема много повече време за учене.

В противен случай за всеки случай мога ли да заредя изображението в основната програма и да използвам указатели към изображението като атрибути на обекта ?