Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Portabilnost C-a

[es] :: C/C++ programiranje :: Portabilnost C-a

Strane: 1 2

[ Pregleda: 8239 | Odgovora: 36 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gojava
Velika Srbija
Srbija

Član broj: 4032
Poruke: 442
*.zastava.net.



+1 Profil

icon Portabilnost C-a17.10.2006. u 13:10 - pre 213 meseci
Znam da programski jezik koji source prevodi u native nije portabilan, ali meni bi posao završila i ograničena portabilnost, naravno, ako je moguća? Pišem neki program u Javi, ap mi je potrebno da se samo neki kritični, ali obimni proračuni, odrade brže nego što to Java može. Hteo bih da te proračune uradim u C-u (koga inače vrlo malo poznajem), pa me interesuje da li će krajnji rezultat kompajliranja da bude portabilan, tj. da li će raditi i na windows-u i na linux-u, pošto moja aplikacija treba da radi na oba OS-a? Proračuni u C-u bi se odnosili isključivo na neke trigonometrijske i matrične proračune; znači nikakvi pozivi sistemskih funkcija ili bilo šta slično.
"Bolje je ćutati i pustiti druge da misle da si glup, nego progovoriti i time otkloniti svaku sumnju." - Bernard Šo

 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.adsl.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: Portabilnost C-a17.10.2006. u 14:29 - pre 213 meseci
Citat:
gojava: Znam da programski jezik koji source prevodi u native nije portabilan
Zasto to mislis?
Program mozda i nije, ali kod bi morao biti - naravno ako je pisan pod standardom.

Nativni program za windowse u pravilu ne radi na linuxu. Ne radi, ali postoje emulatori...

Citat:
Hteo bih da te proračune uradim u C-u

Kako mislis povezati Javu s C-om? Pitam jer vrlo slabo poznam Javu.
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
217.41.236.*



+7173 Profil

icon Re: Portabilnost C-a17.10.2006. u 14:44 - pre 213 meseci
Neces moci da imas jedan binarni fajl (izvrsni) - tako da ces morati da razdvojis distribucije softvera za Windows i Linux u 2 paketa - Windows distribucija bi se sastojala od tvog Java softvera + jednog Windows DLL fajla, dok bi Linux ekvivalent bila Linux biblioteka.

Osim ako ne planiras da distribuiras program kao open-source, za sta je onda potrebno da imas makefile ili 2 makefile-a kako bi korisnici mogli da kreiraju binary za oba sistema.

Citat:

Nativni program za windowse u pravilu ne radi na linuxu. Ne radi, ali postoje emulatori...


Moze, preko JNI-a (Java Native Interface)
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

gojava
Velika Srbija
Srbija

Član broj: 4032
Poruke: 442
*.rcub.bg.ac.yu.



+1 Profil

icon Re: Portabilnost C-a17.10.2006. u 15:37 - pre 213 meseci
@NrmMyth
Ivan Dimkovic ti je već odgovorio. JNI nisam koristio, ali znam čemu služi i eto, kad dođe vreme, koristiću ga. Btw, C je "extension language" za većinu programskih jezika, pa i za Javu.

@Ivan Dimkovic
Moram da razdvojim binarne fajlove, čak i ako su u njima samo tako jednostavne stvari kao što su obični matematički proračuni?
"Bolje je ćutati i pustiti druge da misle da si glup, nego progovoriti i time otkloniti svaku sumnju." - Bernard Šo

 
Odgovor na temu

caboom
Igor Bogicevic
bgd

Član broj: 255
Poruke: 1503
*.eunet.yu.

ICQ: 60630914


+1 Profil

icon Re: Portabilnost C-a17.10.2006. u 15:47 - pre 213 meseci
moj predlog ti je da koristis scons kao build sistem za c deo koda (http://www.scons.org/) i da se drzis standardne c biblioteke koliko je moguce, time povecavas sansu da izbegnes glavobolje oko portabilnosti. interfejs ka javi ne bi trebalo da bude problem ukoliko budes oprezan oko tipova i koristi -Xcheck:jni, ume da smanji glavobolje.

[Ovu poruku je menjao caboom dana 18.10.2006. u 16:50 GMT+1]
 
Odgovor na temu

gojava
Velika Srbija
Srbija

Član broj: 4032
Poruke: 442
213.137.99.*



+1 Profil

icon Re: Portabilnost C-a17.10.2006. u 20:45 - pre 213 meseci
Scons. Stvari kao da počinju da se preterano komplikuju. btw, @caboom, hvala na odgovoru, ali mislim da nisam trenutno spreman da se nešto mnogo petljam sa stvarima koje su daleko od Jave (i C-a).
"Bolje je ćutati i pustiti druge da misle da si glup, nego progovoriti i time otkloniti svaku sumnju." - Bernard Šo

 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.medianis.net.



Profil

icon Re: Portabilnost C-a18.10.2006. u 07:19 - pre 213 meseci
Ako ti treba brzo i jednostavno resenje, onda ako ces da koristis samo standarden C biblioteke, prevedi C program za Vindouz i Linuks platformu i distribuiraj oba u jednom paketu ako nisu znacajno velika ili ih zajedno sa programom podeli u dva zasebna paketa za te dve platforme.

Ipak, iako nije uputno postavljati pitanje na pitanje :) interesuje me da li si siguran da ces dobiti znacajno ubrzanje?
Da se odmah ogradim, ne znam sta bi program konkretno trebao da radi, ali ako ta izracunavanja radis u C-u, onda ces da koristis ugradjene (primtivne) tipove podataka int, float, double... i/ili mozda neke strukture, zasto onda ne bi pokusao da koristis ugradjene (primitivne) tipove podataka i u Javi umesto klasa Integer, Float, Double... koje bi verovatno u nekoj meri usporile izvrsavanje "kriticnih" delova programa, jer iako nemam dugo iskustvo u radu sa Javom, mislim da u ovom konkretnom slucaju, pisanje zasebnih funkcija u C-u verovatno ne bi bilo mnogo isplativije, kada se uzmu u obzir i drugi cinioci (npr. konzistentnost i odrzavanje programa) nego kada bi to isto uradio u Javi.
Najbolje bi bilo da ako imas vremena (i volje) pokusas i jedno i drugo resenje (mozda sa manjim "modelima") i da onda vidis ciji ti odnos dobitaka i gubitaka najvise odgovara.
 
Odgovor na temu

gojava
Velika Srbija
Srbija

Član broj: 4032
Poruke: 442
*.zastava.net.



+1 Profil

icon Re: Portabilnost C-a18.10.2006. u 10:15 - pre 213 meseci
@Milan Aksic
Obe varijante koje si naveo u prvom pasusu dolaze u obzir. Već sam razmišljao o tome.

E sad, da li je OK da sve bude pisano u Javi? Mogu da ti kažem da sam i sam iznenađen brzinom kojom radi Java. Svojevremeno sam napisao obimnu web-aplikaciju u kojoj je bilo dosta proračuna, na osnovu kojih su se generisale neke slike. Podatke sam držao u kolekcijama, pa sam morao često da radim konverziju u primitivne tipove. Vodio sam računa o tome da što više koristim redove a što manje kolekcije, ali sam ipak morao i jedno i drugo. Za divno čudo, sve je radilo prilično brzo. Doduše, uvek sam se pitao kako li će to da radi kod ISP-a, ali mi je jedan ortak malo olakšao brigu rekavši mi da to nije moj problem, već je to problem ISP-a. I nije bilo problema, sajt nije bio preterano posećen (koga je briga za tehniku) pa je sve bilo OK.

A sad, o temi. Proračuni kojima nameravam da se bavim su neka light varijanta metode konačnih elemenata, tj. veoma uprošćen model sa ne baš preterano velikom diskretizacijom. Koliko brzo bi to Java obavila ne znam, ali znam da se za te proračune koriste C ili Fortran, pa sam i ja hteo da to uradim kako valja. Mada, s obzirom na to da je reč o desktop aplikaciji, probaću da što više izvučem od Jave, pa ako budem zadovoljan brzinom, neću ni da probam da to radim u C-u. Interesovala me je pre svega portabilnost C-a za takve stvari, ali pošto od toga nema ništa, nisam siguran da bih ću da se trudim oko njega. Ako mi baš bude frka, naći ću nekog da mi to napiše u C-u i kompajlira, jer taj deo koda ne bi trebao da se menja kad se jednom napiše.


"Bolje je ćutati i pustiti druge da misle da si glup, nego progovoriti i time otkloniti svaku sumnju." - Bernard Šo

 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
65.213.80.*



+6 Profil

icon Re: Portabilnost C-a18.10.2006. u 13:21 - pre 213 meseci
Citat:
gojava: Proračuni kojima nameravam da se bavim su neka light varijanta metode konačnih elemenata, tj. veoma uprošćen model sa ne baš preterano velikom diskretizacijom.


Sve zavisi od veličine matrice. Ako je dovoljno mala, Java može da bude sasvim OK. Ako ne, ozbiljno razmisli o Fortranu. Za numeriku je Fortran i dan danas ubica. C ne može ni da mu priđe.
 
Odgovor na temu

gojava
Velika Srbija
Srbija

Član broj: 4032
Poruke: 442
*.rcub.bg.ac.yu.



+1 Profil

icon Re: Portabilnost C-a18.10.2006. u 16:40 - pre 213 meseci
Slažem se. Fortran je No1. Nego ja treba da napravim i neki korisnički interfejs, a to znam samo u Javi. C++ ne znam.

Malo sam google-ovao i video da su još 1998/99 ljudi pokušali da Javu prilagode za numeričke proračune. Tako su u samoj Javi napisane neke klase koje su značajno ubrzavale proračune u odnosu na tadašnju Core Javu 1.2. U samom startu su iza toga stajali IBM i Sun, tako da verujem, mada još nisam naišao na takav zaključak, da današnja Java u potpunosti implementira predložena, a možda i bolja rešenja. To bi praktično značilo, da je Java po performansama za numeriku, u najgorem sličaju za oko 35% sporija od optimizovanog koda za Fortran. To je za mene sasvim zadovoljavajuće. Pogledajte to ovde: http://researchweb.watson.ibm.com/journal/sj/391/moreira.html Članak je iz 2000. godine. problem sa javom i dalje je veća potrošnja memorije nego kod npr. Fortrana ili C-a, ali nebitno, ima ona mnogo svojih prednosti.
"Bolje je ćutati i pustiti druge da misle da si glup, nego progovoriti i time otkloniti svaku sumnju." - Bernard Šo

 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Portabilnost C-a19.10.2006. u 08:47 - pre 213 meseci
Citat:
Dragi Tata: Sve zavisi od veličine matrice. Ako je dovoljno mala, Java može da bude sasvim OK. Ako ne, ozbiljno razmisli o Fortranu. Za numeriku je Fortran i dan danas ubica. C ne može ni da mu priđe.


Uf, kako ovo zvuci malo cudno :). Da si rekao da u fortranu ima puno libova a numericke proracune, pa da si rekao da je gomila libova za razne proracune napisano u fortranu, ali ne mozes me nikako ubediti da ce program koji prevede neki fortran biti toliko brzi od programa koji prevede c :).

A na stranu sto vecina tih libova ustvari samo zaobilazi cinjenicu da je fortran IV imao samo jednodimenzionalne nizove, pa su emulirali matrice na razne nacine :).

Ali u svakom slucaju bas bi voleo da vidim neki citat gde se spominje to da je fortran bolji :))).

A inace sto se tice portabinosti, kositi samo stabdradna zaglavlja i ...
CHUPCKO
 
Odgovor na temu

gojava
Velika Srbija
Srbija

Član broj: 4032
Poruke: 442
*.zastava.net.



+1 Profil

icon Re: Portabilnost C-a19.10.2006. u 12:12 - pre 213 meseci
@chupcko
Mada nisi mene citirao, komentarisaću samo ukratko da sam ja na puno mesta nailazio na neke uporedne dijagrame koji su prikazivali brzinu Jave u odnosu na Fortran i C i uvek je Fortran bio nešto malo bolji od C-a. Takođe, pošto je cilj bio da se pokaže razlika u brzini u odnosu na Javu, uvek je postojala i napomena da je reč o optimizovanim kodovima za C i Fortran. Na taj način, mogao je da se stekne utisak o maksimalnoj razlici između primene Jave sa jedne strane i C-a i Fortrana sa druge strane za numeričke proračune.

Pa i očekivao sam da ako se koriste standardna zaglavlja, da bi to možda i moglo da bude portabilno, ali sam ipak morao da pitam.
"Bolje je ćutati i pustiti druge da misle da si glup, nego progovoriti i time otkloniti svaku sumnju." - Bernard Šo

 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
65.213.80.*



+6 Profil

icon Re: Portabilnost C-a19.10.2006. u 13:13 - pre 213 meseci
Citat:
chupcko: Ali u svakom slucaju bas bi voleo da vidim neki citat gde se spominje to da je fortran bolji :))).


Kad sam radio u jednoj laboratoriji gde smo razvijali FEM aplikacije, merili smo C i Fortran i "starac" je razbio C (čisto da razjasnim: svi mi smo "navijali" za C). A ako hoćeš "naučno" objašnjenje zašto je tako, pogledaj sekciju b) ovde: http://www.ibiblio.org/pub/languages/fortran/ch1-2.html Posebno značajna stavka je tzv "aliasing" koji je dozvoljen u C-u i onemogućava neke vrlo bitne optimizacije.
 
Odgovor na temu

srki
Srdjan Mitrovic
Auckland, N.Z.

Član broj: 2237
Poruke: 3654
*.jetstream.xtra.co.nz.



+3 Profil

icon Re: Portabilnost C-a19.10.2006. u 16:06 - pre 213 meseci
Citat:
chupcko: Uf, kako ovo zvuci malo cudno :). Da si rekao da u fortranu ima puno libova a numericke proracune, pa da si rekao da je gomila libova za razne proracune napisano u fortranu, ali ne mozes me nikako ubediti da ce program koji prevede neki fortran biti toliko brzi od programa koji prevede c :).

Da, ti libovi su takodje jedan od razloga ali i pored toga ako imas liboce napisane u C-u, cesto oni napisani u Fortranu rade brze.

Citat:
Ali u svakom slucaju bas bi voleo da vidim neki citat gde se spominje to da je fortran bolji :))).


Evo citata:

Citat:
Srdjan Mitrovic: Fortran je bolji!


Salu na stranu, radio sam jedno biolosko istrazivanje gde se koristilo dosta numerickog procesiranja slika sa elektronskog mikroskopa i uvek su brzi bili programi koji su bili napisani u Fortranu. Makar je takvo moje iskustvo.
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Portabilnost C-a20.10.2006. u 08:55 - pre 213 meseci
Pa da, ali opet ponavljam nije ga razbijao, razbiti znaci da je nesto brze barem 2 puta.

Naravno postavlja se pitanje kada je radjeno to istrazivanje i da li je radjena optimizacija :).

E sada, nemojte samo da se javi neko ko ce reci : daaaaaa fortran je brzi i od assemblera :)).

Mada pouzdano i danas znam ljude koji rade neke proracune na fortranu :))), eh ti libovi.

Inace u onom poucnom linku pise da je lakse razvijatu u fortranu nego u c-u, ali ajde, neka bude da je fortraaaaaaaaan nadmocniji puno.

Ali ajde ovako, ako neko bas zeli da me ubedi, neka napise neki lib na fortranu, neki lib u c-u, pa da iskompaliramo sa f77 i gcc, pa kom opanci tom i jeri.

P.S. Da ne bude zabune moj prvi jezik na kojem sam radio je fortran IV.
CHUPCKO
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
*.ubisoft.com.cn.

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: Portabilnost C-a24.10.2006. u 07:19 - pre 212 meseci
Nije nikakva posebna mudrost potpuno zaobići problem aliasinga za matrice i vektore u C/C++.
Kada se to jednom reši, fortran može da se pozdravi sa vođstvom!
Problem je u programerima, ne samo u jezicima koje koriste...
 
Odgovor na temu

srki
Srdjan Mitrovic
Auckland, N.Z.

Član broj: 2237
Poruke: 3654
*.jetstream.xtra.co.nz.



+3 Profil

icon Re: Portabilnost C-a24.10.2006. u 10:54 - pre 212 meseci
U principu mi mozemo za sve da koristimo inline assembly code pa da nam bude skoro isto brzo ali nije u tome poenta. C++ i C nisu pravljeni da budu kao Fortran specijalizovani za numericke operacije. Recimo do c99 standarda nisi imao kompleksne brojeve a u C++-u ih imas ali koriscenjem template-a zbog cega ti sve bude dosta sporije nego da su kompleksni brojevi ukljuceni odmah u sam jezik. Slicna razlika postoji i u D-u i C++-u sto mozes da vidis ovde:
http://www.digitalmars.com/d/cppcomplex.html.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
65.213.80.*



+6 Profil

icon Re: Portabilnost C-a24.10.2006. u 14:17 - pre 212 meseci
Žao mi je što nema nigde (koliko znam) on-line verzija knjige "Design and evolution of C++" u kome je Dr Stroustrup napisao jedan lep paragraf na ovu temu.

U svakom slučaju, on tvrdi (parafraziram) da je prednost Fortrana u odnosu na C i C++ u numeričkim proračunima od 50% do 35 puta (jeste, 35x) zavisno od hardverske arhitekture na kojoj program "trči".

Citat:
chupcko:
Ali ajde ovako, ako neko bas zeli da me ubedi, neka napise neki lib na fortranu, neki lib u c-u, pa da iskompaliramo sa f77 i gcc, pa kom opanci tom i jeri.


Bojim se da će neko drugi morati da te ubeđuje. Nisam pipnuo Fortran od 1998 i nemam nameru da ga sad obnavljam.
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Portabilnost C-a24.10.2006. u 14:53 - pre 212 meseci
:))))))))) Dobro, a da li je neko ukljucio zdrav razum malo :))).

Ajde da je brzi 35%, moze, ali 35 puta :)))).
Pa ajde da je poredjen fortran i java, mozda bi to i moglo da prodje, ali ipak , pricamo o c-u.
Ne uzimam sada u pozmatranje c++, kod koga mozda i moze da bude 35 puta sporije, ali pricam o c-u.

Jednostavno, sistem prevodjenja koji se koristi u fortranu i koji se koristi u c-u nije bitno razlicit. Naravno evo ja cu postaviti jaku tezu:
za svaki proracun koji neko napise u fortranu ja pisem barem jednako brzu u c-u :).

Apropro teze da je fortran pravljen za numericke proracune ?, izvini ali ne mozete me ubediti da je u fortran ugradjen neki super cudno brzi object kod, a da u c nisu mogli nikako to da ugrade ;))). Ako pak neko zna neku instrukciju neka je podeli sa nama :))).

Ali dobro, ovde definitno postoje ljudi koji veruju u bajke i to da je neki programski jezik toliko carobaaaaan :), tako da cu dok ne dobijem neke konkretne rezultate samo da posmatram nemo :).

CHUPCKO
 
Odgovor na temu

VRider
Marković Damir
(BGD/SD Karaburma)/Pirot

Član broj: 1510
Poruke: 4132
*.maksnet.net.

Jabber: damirm | gmail | com
ICQ: 134002435


+13 Profil

icon Re: Portabilnost C-a24.10.2006. u 15:03 - pre 212 meseci
50% od C-a, 35 puta od C++-a. Moze li tako? I vuk sit i ovce na broju...
JaFreelancer.com
 
Odgovor na temu

[es] :: C/C++ programiranje :: Portabilnost C-a

Strane: 1 2

[ Pregleda: 8239 | Odgovora: 36 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.