Új hozzászólás Aktív témák

  • beleszólok

    senior tag

    Rég foglalkoztam ilyesmivel: ha egy hosszú text fájlt több szálon akarok feldolgozni, van rá valami bevált módszer, hogy ne lassítsak a párhuzamosított feldolgozással? :)

    Pythonnal szórakozom, de mint "jó" módszert, azt találtam, hogy van egy reader szál, aki queue-ba pakolja a beolvasott sorokat, míg több feldolgozó, akik a queue-ból szedik kifelé a feldolgozandó adatokat.
    Az a baj, hogy ez így, kb. egy-két nagyságrendet lassít a feldolgozáson.
    Tehát egy sima végigolvasás a kevesebb, mint egy másodperc helyett 30-40mp-ig fut.

    Magát az olvasást sajnos nem lehet párhuzamosítani, mivel a pythonba beépített I/O funkciók nem szál-biztosak, ami meg erre lett kitalálva, annak a sebessége elfogadhatatlan. (kb. 10-15 percig futna a fenti feladat) Pedig ez lett volna az eredeti elképzelésem, mivel egy két magos gépen a CPU igényes műveleteket max. két szálra érdemes szétdobni, azon túl már számolgatni kell, meddig éri meg.
    O.K., hogy van egy optimális szám, aminél több szálat elindítva csak lassítok a dolgon, az is tiszta, hogy a queue-val közvetített sorok eleve lassítanak, de hogy ennyire... ez egy kicsit túlzásnak tűnik. :(

Új hozzászólás Aktív témák