Hálózatprogramozás
2008-10-26T02:13:54+01:00
2008-10-26T13:15:34+01:00
2022-07-25T20:06:17+02:00
  • 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!
abcd