- Elviraválasza Sanyika (02:13) részére
- 2008.10.26. 13:15
- permalink
Hat eleg keveset arulsz el a szimulaciobol. Gondolom az iteraciokat darabolod szet az egyes alkalamzasok kozott, viszont egy iteracio 4 uzenetvaltasbol all, amelybol legalabb egyben be kell varni a tobbieket. Jol ertem?
Ebben az esetben nagyon at kell gondolni, sot jobbat mondok meg kell merni, mi tart tovabb, az iteracio vagy az uzenetvalatas.
A WCF-el ezek szerint ugy jartal, hogy a kommunikacio tovabb tart mint maga egy iteracio, tehat nem erdemes WCF-ben gondolkodni.
Sztem a socket gyorsabb lesz, de egyaltalan nem bisztos, hogy szignifikansan, ezt ugyis csak kimerni lehet.
De megegyszer mondom, ha az iteracios lepes nagyon rovid akkor lehet hogy nem is erdemes tobbprocesszesiteni a dolgot, plane ha az alkalamzasoknak minden egyes iteracional meg kell varniuk a tobbit.
ui: na ismet okoskodtam egy kicsit, de fontos hogy melyik a sebessegmeghatarozo lepes, az iteracio vagy a kommunikacio Mutasd a teljes hozzászólást!- Üdv,
Bevezető:)
----------
Van egy szimulációs alkalmazásom, ezt fejlesztgetem már egy jó ideje. Az algoritmus számításokat végez egy modellen. Egy szimuláció egy napot ölel fel modellidőben, a napokat másodpercekre bontom, így 86400 iterációból áll egy szimuláció. A számítás véleményem szerint könnyen párhuzamosítható, ezért gondoldtam, hogy több gép között kellene szétosztani a feladatokat, később akár egy GRID rendszer fejlesztése is kialakulhatna a dologból. Egy iteráció kb 4 üzenetváltásból áll a szálak között, ezt a kommunikációt kellene hálózaton lebonyolítani. Egy üzenet önmagában rövidke, viszont az A tipusú üzenetet mindenkinek el kellene küldenie, mielőtt a B-t elküldhetnék, azaz a szálaknak sokat kell várni egymásra.
Kísérlet a megvalósításra...
----------------------------
Naná, hogy WCF-fel estem neki:). Neten kutatás, net.tcpbinding a leggyorsabb, ahol lehet ott az IsOneWay -jel is próbáltam gyorsítani, hogy kevesebbet kelljen várni a hálózatra. Az eredeti szimuláció hálózat nélkül 15 perctől 12 óráig szöszmötölt el a feladattal, a hálózatos (egy szerver- egy kliens) megoldás pedig nagyságrendileg lassabb lett(kb 5-10 szeres a lassulás)!
Vitaindító
----------
Rosszul álltam neki az egésznek? Nem WCF -fel kellett volna, hanem Socketes megoldással??? Azért bátorkodtam nekiállni WCF -fel (féltem nagyon az overheadtól), mert suliban azt mondták, hogy úgy is az a lassú, hogy "hozzá kell nyúlni a HW -hez", a serializálás meg a reflection a hálózat fizikai késleltetéséhez képest lényegtelen. OK. De a MOHAA -ban meg a Quake-ben mégis működik a dolog gyorsan (nyilván az nem WCF -ben van:)) Vagy ott sincs másodpercenként 20 üzenetváltás? Érdemes a Socketes megoldásnak nekiveselkednem, vagy nem? Kinek mi a tapasztalata a WCF overheadjével kapcsolatban? Előre is kösz az ötleteket, válaszokat:).Mutasd a teljes hozzászólást!