Kurzusok
/
C++
C++
/
Feladatok
/
Párhuzamos betűgyakoriság
Párhuzamos betűgyakoriság

Párhuzamos betűgyakoriság

Közepes

Utasítások

Párhuzamos számítással számold meg a betűk gyakoriságát szövegekben.

A párhuzamosság lényege, hogy olyan dolgokat végzünk párhuzamosan, amelyeket sorosan is el lehet végezni. Gyakori példa erre a betűk gyakoriságának megszámolása. Használj párhuzamosságot, hogy kiszámítsd az egyes betűk összesített gyakoriságát a szövegek listájában.

További megjegyzések a C++ implementációhoz

A párhuzamosságot C++-ban többféleképpen is megvalósíthatod. Az Exercism online futtatója támogatja a C++17-et, így használhatod az algoritmusok könyvtárának végrehajtási irányelveit. Egy másik lehetőség a szálak kézi kezelése. Ne feledd azonban, hogy egy szál létrehozása meglehetősen költséges (egy szálkészlet használata segítene).

Ha helyben dolgozol, természetesen azt használsz, amit csak szeretnél. Egy nem szabványos könyvtárakat használó megoldás azonban valószínűleg nem fog működni az Exercism online futtatójával.

Teljesítményteszt

Ha helyben dolgozol, opcionálisan futtathatsz egy teljesítménytesztet, hogy képet kapj a különböző implementációk gyorsulásáról. A teljesítménytesztet az EXERCISM_INCLUDE_BENCHMARK CMake-kapcsoló aktiválásával engedélyezheted:

cmake -DEXERCISM_RUN_ALL_TESTS=1 -DEXERCISM_INCLUDE_BENCHMARK=1 .

Párhuzamos algoritmusok fordítótámogatása

A GCC C++ szabványos könyvtárának implementációja (libstdc++) a TBB-re támaszkodik. Ha a TBB nem érhető el, egy szekvenciális verzióra esik vissza, még akkor is, ha párhuzamos végrehajtást kértél.

Ubuntun telepítened kell a libtbb-dev csomagot:

apt-get install libtbb-dev

macOS-en a Homebrew segítségével telepítheted a TBB-t:

brew install tbb

A Clang libc++-ja a 17-es verziótól kezdődően kísérleti, részleges támogatást nyújt a párhuzamos algoritmusokhoz. A bekapcsolásához meg kell adni a -fexperimental-library fordítókapcsolót.

Az Apple Clang 15 és a korábbi verziók nem támogatják a párhuzamos algoritmusokat.

Linuxon és macOS-en ehhez a feladathoz a GCC használatát javasoljuk (az alapértelmezett libstdc++ könyvtárral együtt).

A Microsoft MSVC-je legalább a VS 2017 15.7 óta támogatja a párhuzamos algoritmusokat anélkül, hogy bármilyen további könyvtárat telepíteni kellene.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
C++ Exercism

Készen állsz elkezdeni a(z) Párhuzamos betűgyakoriság feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C++ nyelvet 19 fogalom100 feladat segítségével, valódi emberi mentorálással, mindez ingyen.

Mélyelemzés: Párhuzamos betűgyakoriság!

A konkurencia és a párhuzamosság közötti különbségeket járjuk körbe, olyan nyelvek eltérő megközelítéseit szemügyre véve, mint a JavaScript, a Go, az Elixir és a Rust.