OpenZL 0.2.0

OpenZL 0.2.0 OpenZL 0.2.0

Efter sju mÄnaders utveckling lanserades 0.2.0 av ramverket OpenZL, avsett för att skapa förlustfria datakompressorer.

Ramverket bestÄr av ett grundlÀggande bibliotek och verktyg för att skapa specialiserade kompressorer, beskrivna pÄ sprÄket SDDL.
För att skapa en bra specialiserad kompressor finns det tvÄ steg:

  1. Analys av data för att extrahera strukturen.
  2. AnvÀndning av bra backend-kompressorer som anvÀnder den erhÄllna strukturen för att uppnÄ bra kompression.

OpenZL tillhandahÄller verktyg för bÄda stegen.

Projektet Àr skrivet i C och C++ och distribueras under BSD-licens.

Viktiga Àndringar

SDDL2

SDDL har helt omarbetats frÄn grunden för att uppnÄ de designmÄl som satts. Medan den ursprungliga demo-versionen var en förenklad körexekveringsmiljö, Àr SDDL2 en fullstÀndig kompilator: syntaktisk analys skickar data till den semantiska analysatorn, som i sin tur skickar ett typat abstrakt syntaxtrÀd (AST) till optimizern, och optimizern hanterar kodgeneratorn som genererar bytekod för den virtuella maskinen.

Den viktigaste resultaten Àr omedelbar syntaktisk analys. NÀr positionen för en post helt kan faststÀllas endast utifrÄn parametrar och konstanter, gÄr motorn direkt till vilket fÀlt som helst utan att skanna de föregÄende byteenheterna, vilket möjliggör direkt Ätkomst utan kopiering och en bandbredd pÄ flera GB/s.

SjÀlva sprÄket har utvecklats tillsammans med verktygen. Det stöder nu when-block för villkorsbundna placeringar, parameteriserade och anonyma poster, Ätkomst till medlemsfÀlt i poster samt bit- och logiska operatorer.

NĂ€r det gĂ€ller utvecklarvĂ€nlighet upptĂ€cker det semantiska analyssteget nu odefinierade referenser, typmismatchar och arity-fel vid kompilering – med angivelse av plats i kĂ€llkoden – istĂ€llet för vid körning, och ett VS Code-tillĂ€gg för syntaxmarkering av .sddl-filer har slĂ€ppts.

Den nya inbyggda codec LZ

I OpenZL har nu en egen LZ-kodare, presenterad som ZL_GRAPH_LZ, samt en profil för sekventiell kompression i verktyget zli. Arbetet med kodaren fortsÀtter: funktioner utökas och prestandan vid bearbetning av smÄ ingÄngar förbÀttras. För nÀrvarande stöder den funktionalitet som motsvarar zstd nivÄ 1, med en kompressionsfönsterstorlek pÄ 64 KB.

OpenZL ger möjlighet att omdesigna varje steg i LZ-pipelinen för att öka hastigheten. Dess grafarkitektur gör det ocksÄ möjligt att kombinera steg i entropikodning istÀllet för att anvÀnda en enda pipeline som passar alla anvÀndningsscenarier lika bra. Flera steg kan sedan kombineras till en operation för att öka bearbetningshastigheten. Detta gör att OpenZL kan erbjuda 10% högre kompressionshastighet och 70% högre dekompressionshastighet jÀmfört med Zstandard nivÄ 1 pÄ Silesia-datat. vÄra tester:

KompressorKompressionsförhÄllandeKompressionshastighetDekompressionshastighet
OpenZL LZ nivÄ 12.74466 MB/s2288 MB/s
Zstd nivÄ 1 med 64K fönsterstorlek2.74419 MB/s1254 MB/s
Zstd nivÄ 12.89424 MB/s1345 MB/s

Stöd för mycket stora ingÄngsdata

zli stöder nu bearbetning av enorma ingĂ„ngsdata (flera gigabyte stora). Innan kompressionen delas sĂ„dana data nu automatiskt upp i hanterbara storleksfragment (standard Ă€r cirka 16 MB), vilket begrĂ€nsar minnesanvĂ€ndningen, ökar datalokaliseringen och möjliggör parallell bearbetning. I SDDL2 har en liknande automatisk fragmenteringsfunktion implementerats vid arbetet enligt schemat. Under processen har nya eller uppdaterade segmenterare skapats – för CSV, Parquet och standardnumeriska data – och alla segmenterare Ă€r nu serialiserbara och konfigurerbara, sĂ„ den valda layouten kan sparas i kompressorn och anvĂ€ndas igen senare.

Detta tillÀmpas transparent under kompressionen. Observera att utbildningspiplinanen Àr oförÀndrad och förblir intakt, sÄ den Àr inte avsedd att ta emot gigantiska ingÄngar som utbildningsmaterial.

FörbÀttringar i den online grafvisualizeraren (prova)
Nu kÀnner visualizeraren igen kompressionens och dekompressionens spÄr frÄn början till slut.

Strömförhandsgranskningspanelen gör det möjligt att se de byte som faktiskt passerar genom varje kant, och tack vare trimningskontrollerna förblir Àven stora strömmar hanterbara.

InstĂ€llningspanelen samlar alla visningsalternativ pĂ„ ett stĂ€lle, och det kompletta snabbkommando-setet – navigering, ordnad traversal, expandering och kollapsning, nodval – gör det enkelt att arbeta med verktyget utan mus.

Nu har spĂ„rningarna versioner, blockkomprimering visas korrekt, och zli kan Ă€ntligen generera egna spĂ„rningar med de nya flaggorna —trace och —trace-streams-dir.

Olika

  • Flera codecs har lagts till i katalogen. Codecs Partition och bitpack anvĂ€nder nu en sammanslagen dekoder. Codec Floating-point bitsplit har fĂ„tt speciella kodare och dekodare för formaten fp16, fp32, fp64 och bf16 med specialiserade accelereringar. Splittrande efter intervall (split_byrange), lĂ€ngdmultiplexer, codec sentinel, graf lz4 och smĂ„ hjĂ€lpfunktioner som tryParseInt och splitByParam har ocksĂ„ lagts till.
  • API:t har ordnats.
  • Fuzzningstesterna har förbĂ€ttrats.
  • Bygg- och paketprocessen har förbĂ€ttrats för fler plattformar.

KĂ€lla: linux.org.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster