Kirjoittaja Aihe: Transactional Memory  (Luettu 626 kertaa)

Sami Lehtinen

  • Käyttäjä
  • Viestejä: 726
  • Techie
    • Profiili
    • Sami Lehtinen
Transactional Memory
« : 30.08.12 - klo:17.06 »
Onkos täällä mitään aatteita ihmisillä transactional memorystä? IBM julkaisi main framen joka tukee sitä ja myös Intelin Haswell piirit tulevat tukemaan sitä.

Tässä hyvä artikkeli aiheesta: http://www.realworldtech.com/haswell-tm/

Jotenkin oletan että tuo tekniikka tullaan sisällyttämään korkeamman tason kieliin niin, että kehittäjän ei tarvitse tietää asiasta mitään ja suoritus nopeutuu taustalla. Tai siis tarvitse ja tarvitse, toki tietyillä jekuilla voidaan parantaa toiminnallisuutta, mutta koodi toimii ilman noita optimointejakin varsin hyvin.

Jos näin syvällinen nörttiteksti kiinnosti, niin sitten suosittelen lukemaan myös tämän: forum.ubuntu-fi.org/index.php?topic=43231 (Memory Access Patterns)

Ainakin omassa koodissani olen soveltanut menestyksekkäästi osassa koodia pipelingiä ja sitten taas toisissa kohdissa rinnastamista. Eli yleesnä input on omana threadina, sitten on prepare vaihe, sitten main processing on rinnastettuna useille prosesseille ja jälleen finalize ja output omina threadeinaan. Data jota yleenäs käsittelen on sellaisessa muodossa että se tulee joko kannasta tai levyltä (flat file) ja päätyy kantaan tai levylle (flat file). Mutta prosessointi vaiheessa sitä hierotaan tehden erilaisia mappingeja jne. Harvemmin kuitenkaan päädytään kirjoittamaan mitään jaettuun muisti-avaruuteen, joten rinnastus toimii erinomaisesti. Noissa kirjoituksissakin voi käyttää Pythonin valmiiksi tarjoamia thread-safe mokkuloita kuten message queueta tai dictionaryä.

Semmoset bittinikkari tarinat tänään.

KW: Hardware Lock Elision (HLE), Restricted Transactional Memory (RTM)