Trådpaket

[VERIFIERAD] Senast uppdaterad av Joe Schaefer den Sun, 14 Sep 2025    källa
 

AI-genererat trådpaket.

POSIX-trådar

Jag fick i år i uppdrag att portera vår maximala sannolikhetsfunktion från en enda gängad version till en flertrådad en, baserat på den arkitektoniska förutsättningen att den långsammaste delen av den koden är där den faktiska optimeringslogiken slingrar sig över ett index av modelleringsgrupp Id: s, som genom design, varje iteration genom slingan ska vara oberoende av resten.

Roligt problem när slingan

  1. kan inte initiera om beroende automatiska variabler,
  2. ändrar flera globala pekare indexerade efter modelleringsgrupp-id (kräkas),
  3. är i stort behov av thread_local-variabler för att separera globala minnessegment dedikerade till beräkningen (per id-basis).

1 och 3 var enkla. Med 2 upptäckte jag en smart algoritm som involverade konceptet THREAD_BUNDLE, som är ett block per tråd med grupp-ID:n för seriemodellering.

Genom att säkerställa THREAD_BUNDLE är minst lika stor som en minnessidstorlek dividerat med storleken på de enskilda pekarna i 2, vi kan se till att olika trådar fungerar på oberoende sidor i virtuellt minne, så att vi kan undvika mutex-lås på dessa minnesskrivningar. (Förutsatt att trådarna bearbetar sina THREAD_BUNDLE i ungefär samma hastighet).

Dessutom avlägsnade jag så småningom “samma hastighet” beroende genom att dela upp slingan i jämna/odd parningar, vilket garanterar minst ett minne. sida separerar den aktiva THREAD_BUNDLE loopar.

Kärnslingor

  /* EVEN */
  for (jG = minG; jG <= numG; jG += 2*THREAD_BUNDLE)
  {
    pthread_t ptid; 3 refs
    arg_t* arg = mal (sizeof(*arg), "arg_t"); 12 refs

#define SET_ARG(foo) arg->foo = (foo) 30 refs

SET_ARG(jG);
    ...

#undef SET_ARG

// rsim_mlf_thread loops over the index bundle
    // from jG to MIN(numG, jG + THREAD_BUNDLE - minG), doing
    // stuff with global data structures also indexed by jG

pthread_create (&ptid, NULL, rsim_mlf_thread, arg);
    PUSH_STACK_ELT(thread_stack, ptid, pthread_t);
  }

{
    pthread_t * ptid; 3 refs
    while (POP_STACK_PTR(thread_stack, ptid, pthread_t) != NULL)
    {
      arg_t* arg; 6 refs
      pthread_join(*ptid, (void**)&arg);
      ...
  }

/* ODD */
  for (jG = THREAD_BUNDLE + minG; jG <= numG; jG += 2*THREAD_BUNDLE)
  {
    pthread_t ptid; 3 refs
    arg_t* arg = mal (sizeof(*arg), "arg_t"); 12 refs
    ...
Permalänk  #C   #mutex   #POSIX   #tråd  

 


Kommentarer  



Index

- [Trippelprodukter av Eigenfunctions och Spectral Geometry](/joe/triple-products.html.sv) &mdash; Vi avslöjar en roman, men ändå bekant, global geometrisk invariant ... <small><em>Mon, 20 Oct 2025</em></small>

Beroenden för engelska

- [Vad handlar <em>Smart Content Dependency ManagementTM</em> om?](/joe/dependencies.html.sv) &mdash; En tydlig förståelse av din webbplats *beroende graf* kommer att se till att du kan maximera prestandan hos vår byggteknik i stor skala ... <small><em>Tue, 13 May 2025</em></small>

endast solstjärna

- [Perl 7 Funktionsbegäran: förseglade underdelar för typangivna lexikaler](/joe/perl7-sealed-lexicals.html.sv) &mdash; Perl 5:s OO-exekveringsmetoduppslagning har 50 % mer prestandakostnader än ett direkt, namngivet subrutinanrop ... <small><em>Fri, 21 Mar 2025</em></small>

COVID-19 i mars 2020

- [Exponentiell tillväxt och COVID-19](/joe/power.html.sv) &mdash; Ta din tid med ** matte** avsnittet &mdash; Det är viktigt att vara en utbildad konsument av statistik som är relevant för den nuvarande pandemin ... <small><em>Thu, 06 Mar 2025</em></small>

 

- [Git och Non Repudiation, Revisited](/joe/git-and-non-repudiation.html.sv) &mdash; Det finns en tydlig skillnad mellan "åtagandets" historia och "uppladdningens" historia. ... <small><em>Fri, 03 Jan 2025</em></small>

Heyoka

- [Joe's slumpmässiga tankar](/joe/index.html.sv) &mdash; Välkommen! ... <small><em>Sun, 10 Nov 2024</em></small>

NonFunctional Tester

- [Informationssäkerhet, applikationsprestanda och tillförlitlighet](/joe/spr.html.sv) &mdash; "Icke-funktionell" programvaruteknik handlar om tre huvudfrågor: säkerhet, prestanda och tillförlitlighet (**SPR**) ... <small><em>Thu, 06 Jun 2024</em></small>

Hyperbolisk honungskaka

- [Stokastisk spårningsformel för stängda, negativt böjda grenrör](/joe/stochastic-trace-formula.html.sv) &mdash; Min * 1997 Ph.D. avhandling* som ett blogginlägg. ... <small><em>Fri, 26 Apr 2024</em></small>

tjärad och fjädrad

- [Apache HTTPd Devs ansåg vara skadliga](/joe/apache-considered-harmful.html.sv) &mdash; Philip visste inte mycket då var hur fullständigt [peevish, vapid och territorial](https://www.mail-archive.com/dev@httpd.apache.org/msg77781.html) Det laget hade blivit ... <small><em>Fri, 26 Apr 2024</em></small>

 

- [Rörelsen DevOps](/joe/devops.html.sv) &mdash; Den stora idén bakom "rörelsen" är inte bara att ge utvecklare mer rep ... <small><em>Fri, 26 Apr 2024</em></small>

 

- [Roligt med htop](/joe/fun-with-htop.html.sv) &mdash; Avancerade funktioner på populära Unix-plattformar ... <small><em>Fri, 26 Apr 2024</em></small>

Informationsarkitektur

- [Informationsarkitektur](/joe/ia.html.sv) &mdash; Hela skalan av teknik som är relevant för design, presentation, relationer och arkitektoniska begränsningar som täcker varje URL du tjänar ... <small><em>Fri, 26 Apr 2024</em></small>

 

- [Informationssäkerhet - introduktion](/joe/infosec.html.sv) &mdash; Alla data som kommer från ett exekverings-UNIX **systemanrop** ska behandlas som **behållna** ... <small><em>

Vad är det primära målet för InfoSec?

För att säkerställa att alla förändringar vid kontextgränser är väl reglerade.

Till exempel uppfyller varje systemanrop på en UNIX-plattform detta villkor när det gäller UNIX-säkerhetsmodell för användare/gruppprocess+filesystem. Den litterala definitionen av en kontextväxel, vilket anges av systemanrop, inbegriper en kontroll av API-användningssäkerheten på kärnans sida av anropet.

När det gäller leverans av SaaS, {# lede #}alla data som kommer från ett exekverings-UNIX systemanrop ska behandlas som behållna{# lede #}

UNIX säkerhetsmodell ensam gjorde aldrig bestämmelser för nätverksansluten klient / server applikationsutveckling, eftersom historiskt BSD socket API som föregick ökningen av Network Computing på 90-talet (Sun Microsystems) uppfanns över ett decennium efter UNIX föddes (med sin OS-baserade multiuser säkerhetsmodell helt bildad vid födseln). MIT Kerberos.

Schemalägga CPU:er på ett säkert sätt för att utföra arbete på kärnnivå för någon "auktoriserad användar-/grupp-/rollkontext" som inte är kopplad till den underliggande processens UNIX-användar-/gruppkontext har alltid legat utanför UNIX-modellen. Många infosec initiativ misslyckas med att erkänna detta regulatoriska ansvar tillhör program ensam; Låt inte din vara en!

Om det inte är klart vid denna tidpunkt, bör DevOps/SRE-team triaging SaaS security (CAI) incidenter på Linux bekanta sig med htops stjärt gränssnitt via ss nyckel! Bättre att behärska stjärt

Hur relaterar detta till Zero-Trust-initiativ, som en praktisk fråga?

Nolltillförlitlig arkitektur.

Även om det kan finnas VPN/Firewall-kontexter i verkligheten är ingen av dessa detaljer relevanta för InfoSec inom ett Zero-Trust-ramverk. Med andra ord kan sådana nätverkstopologisäkerhetsinitiativ öka Zero-Trust-initiativ, men de förlitar sig aldrig på inom ett Zero-Trust-initiativ på basserverns värdsäkerhetsnivå upp genom applikationsnivån.

MIT Kerberos och Active Directory är till exempel kompatibla med Zero-Trust.

$Datum: 2023-01-19 22:58:40 +0000 (Thu, 19 Jan 2023) $


 

- [Utskickslistor](/joe/mailing-lists.html.sv) &mdash; Dessa tillfälliga adresser är anathema för `ezmlm-idx`'s abonnemang och modereringssystem ... <small><em>Fri, 26 Apr 2024</em></small>

 

- [Applikationsprestanda](/joe/performance.html.sv) &mdash; Många utvecklare faller i fällan att tänka prestandaoptimering handlar om att göra varje rad av kod så effektiv som möjligt. ... <small><em>Fri, 26 Apr 2024</em></small>

 

- [Om skräppostproblemet...](/joe/spam.html.sv) &mdash; Bästa plugin för `qpsmtpd`Även om det är svårt att förstå varför ... <small><em>Fri, 26 Apr 2024</em></small>

 

- [Glädjen i DTrace](/joe/joy-of-dtrace.html.sv) &mdash; Mät två gånger, skära en gång innan du påbörjar ett arbete med kodoptimering ... <small><em>Fri, 26 Apr 2024</em></small>

 

- [Glädjen i htop](/joe/joy-of-htop.html.sv) &mdash; Hotell nära Solaris 11 ... <small><em>Thu, 25 Apr 2024</em></small>