Overleg:Gedistribueerd programmeren

Pagina-inhoud wordt niet ondersteund in andere talen.
Onderwerp toevoegen
Uit Wikipedia, de vrije encyclopedie
Laatste reactie: 12 jaar geleden door Rp in het onderwerp Concurrency

Hallo Ben,

Ik zal het niet nog eens naar parallelle programmering veranderen, de term betekent blijkbaar veel voor je, maar waarom begrijp ik niet: iedereen spreekt over parallel processing, wat zich m.i. het beste als parallelle programmering laat vertalen. De term multiprogrammeren komt 6 keer voor in Google, dat geeft toch wel aan dat dat geen algemeen gangbaar begrip is? Vriendelijke groet, Erik Zachte 18 aug 2003 19:17 (CEST)Reageren


Erik: als je in google zoekt naar "multi programming" krijg je 4360 hits. Flyingbird 18 aug 2003 19:23 (CEST)Reageren

En "multiprogramming" zelfs 22.900. Neemt niet weg dat "parallel processing" 304.000 scoort, maar afijn, point taken Erik Zachte 19 aug 2003 02:22 (CEST)Reageren

BT: Het is wellicht geen algemeen gangbaar begrip (nog niet, hoop ik), maar het is wel het betere begrip. "Parallel programmeren" heeft iets in zich besloten van uitvoering op meerdere processoren zodat deelprogramma's parallel aan elkaar lopen. Dat was inderdaad ooit wel het idee, maar dat hoeft natuurlijk helemaal niet -- de browser waar jij nu naar staart, maakt bijvoorbeeld zonder enige twijfel gebruik van meerdere threads terwijl het geheel toch (waarschijnlijk) op één processor draait. De essentie van het geheel is echter een model waarin een hele hoop deelprogramma's samen één enkel programma vormen, hoe ze onderling ook uitgevoerd worden. Daarbij past de naam multiprogramma meer dan parallel programma.

Bovendien is dit een encyclopedie -- daarin telt de beste term, niet de meest voorkomende (behalve als doorverwijzing). Neem bijvoorbeeld je strottehoofd (toch een bekend woord); in een beetje redelijke encyclopedie vind je dat onder "larynx".Gebruiker:BenTels


De term 'Multiprogrammeren' heeft een geheel andere oorsprong en dus betekenis. Het begrip is ontstaan in de jaren 60 toen men hardware bedacht om een computer in staat te stellen schijnbaar met meer dan 1 programma tegelijk bezig te zijn. Het begrip 'proces' bestond toen ook nog niet: er werden meerdere programma's schijnbaar tegelijk verwerkt, in 'multiprogrammering' (eng: multiprogramming). Uit die tijd stamt ook het begrip 'multitasking' dat sloeg op de uitvoering van taken voor een gebruiker. Multitasking blijkt tegenwoordig meer algemeen gebruikt te worden om aan te duiden dan een computer met meer dan 1 ding tegelijk bezig is. Waar het in dit artikel blijkbaar om gaat, is 'parallel programmeren' waarbij sprake is van een programma waarvan een aantal gespecificeerde onder delen parallel verwerkt zouden kunnen worden als er meerdere processoren beschikbaar zijn. Zo'n programma kan echter ook schijnbaar parallel verwerkt worden op 1 processor. Om het onderscheid tussen parallel en schijnbaar parallel te laten vervallen omdat het bij het ontwerp van zo'n programma niet relevant is, is hiervoor het begrip 'concurrent' ingevoerd. Waar het in dit artikel dus om gaat is 'concurrent programmeren'.

[Lex Meuldijk, 5 dec 2004]

De term multiprogrammeren wordt tegenwoordig toegepast om een stijl van programma-ontwerp aan te duiden waarbij het eigenlijke programma verdeeld is in meerdere componenten. Componenten die gelijktijdig op verschillende processoren uitgevoerd kunnen worden, interleaved op een enkele processor of -- op synchronisatie na -- sequantieel op een enkele processor. Daarbij is multiprogrammeren ook de enige, neutrale term om het bijbehorende idee aan te duiden. Parallel programmeren impliceert meerdere processoren waar dat niet hoeft. Concurrent programmeren impliceert op zijn minst interleaving, zoniet meerdere processoren. Multiprogrammeren is de enige term die recht doet aan het enkele, onderscheidende principe van multiprogrammeren: de verdeling in componenten van het programma waarbij de volgorde van statements uit verschillende componenten modulo synchronisatie niet gegarandeerd is.
Verder verwijs ik naar "On a Method of Multiprogramming", een uitstekend werk uit de monographs-serie van Springer, voor meer informatie hierover. -- BenTels 5 dec 2004 11:36 (CET)Reageren
Beste Ben,
Tja, wat moet ik hier nu mee. Ik ben sinds 1968 bezig in het vakgebied en dit is de allereerste keer dat ik lees over deze uitleg van het begrip 'multiprogrammeren'.
Graag zou ik weten hoe je hier aan komt. Is dat begrip ergens formeel vastgelegd? Of heeft iemand weer eens een kreet de wereld in geslingerd, zoals al zovele malen gebeurd is? Ik kan je x boeken opnoemen waarin sprake is van 'concurrente programma's' als het gaat om deze problematiek.
Wat is multiprogrammeren eigenlijk voor soort woord? Een werkwoord? Zo van: ik multiprogrammeer, jij multiprogrammeert,.. ?
Ook als zou het zo zijn dat de problematiek gaat over multiprogramma's (ik heb bij dat woord geen enkele associatie), dan zou het zeer op zijn plaats zijn in het artikel te vermelden dat dit tot voor kort bekend was onder de kreet 'concurrente programmering' (hoewel ik daar ook niet zo gelukkig mee ben, maar dat zou meer woorden vergen om dat uit te leggen). Ook zou dan aandacht gegeven moeten worden aan de 'oude' betekenis van het begrip 'multiprogramming'.
Ik kwam toevallig bij deze encyclopedie en was nieuwsgierig naar wat er in staat over waar ik mij tot voor kort als docent mee bezig hield.
Ik ben nu wat sceptisch over de waarde van deze encyclopedie.
Groet,
[Lex Meuldijk]
Ik ken het begrip ook als multiprogrammering. Parallelle programmering kom je ook wel tegen, maar ik vind de uitleg van Ben waarom multiprogrammering beter is logisch. Concurrente programmering is een bijzonder lelijk anglicisme en zou ik ten alle tijden afraden. Danielm 6 dec 2004 07:00 (CET)Reageren

Beste Ben,

Op de andere wikipedia's kom ik geen artikel tegen over 'Multiprogrammeren' maar wel in 5 talen (tenminste 4, voor de Chinese versie kan ik het niet met zekerheid zeggen) een artikel over 'parallel programmeren'.

Ik zie 2 mogelijkheden

1: de termen 'parallel programmeren' en 'multiprogrammeren' zijn nauw verwant maar overlappen elkaar niet volledig
In dit geval is het wellicht beter zowel een artikel 'parallel programmeren' als een artikel 'multiprogrameren' te maken. Wat ik uit bovenstaande discussies, andere wikipedia's, en Google afleid is dat de term 'parallel programmeren' meer gangbaar is, zodat het voor de hand ligt om het artikel 'parallel programmeren' meer uitgebreid te maken en in het artikel 'multiprogrameren' slechts uit te leggen wat de verschillen zijn met 'parallel programmeren'.
2: de termen 'parallel programmeren' en 'multiprogrammeren' gaan over exact hetzelfde onderwerp
In dit geval gaat het dus alleen om de vraag welke term beter is om als titel te gebruiken. Een vergelijking met "strottehoofd" en "larynx" lijkt me hier niet terecht. Het valt volgens mij moeilijk te verdedigen dat de term 'parallel programmeren' meer iets is voor leken terwijl de echte experts het over 'multiprogrameren' hebben.

Toch hoop ik dat de bijdrage van Lex Meuldijk die momenteel alleen via de geschiedenis van Multiprogrammeren te bekijken is, in latere versies op z'n minst gedeeltelijk gebruikt zullen worden.

Met vriendelijke groeten,

Robotje

P.S. Sinds 4 december 2004 (19:37) heeft de Nederlandstalige wikipedia een artikel Strottenhoofd met slechts een redirect vanaf 'Larynx'. Wat een toeval hè? ;-)


@Danielm. Waarom worden regelmatig woorden die een Latijnse oorsprong hebben, eerst in het Engels geintroduceerd worden en daarna in het Nederlands (concurro (Lat), concurrent (Eng), concurrent (Ned)), gekenschetst als (bijzonder lelijk) anglicisme?

En ander aardig voorbeeld is het Magnum-ijsje, hier te lande hardnekkig uitgesproken als meknum, terwijl het een simpel Latijns woord is: magnum (= groot). De Latijnse uitspraak die mij ooit op het Gym geleerd is: magnoem. Of dat de correcte uitspraak is, weet ik uiteraard niet, maar meknum zal het zeker niet geweest zijn ;-)

Laat ik het even bij Engels houden. De term 'concurrent' komt reeds voor in het standaardwerk uit 1973 over Operating Systems van Per Brinch Hansen. Sindsdien is het in gebruik om onderhavige problematiek aan te duiden.

Lex Meuldijk

Ik merk dat er geen beweging in zit. Daarom ga ik weer weg. Nog een opmerking: ook het begrip 'multiprocessing' wordt verkeerd gebruikt. En een advies: lees de overeenkomstige versie in de Engelse Wiki. Veel succes verder. Groet, Lex Meuldijk.

Optie 3: gedistribueerd programmeren[brontekst bewerken]

gedistribueerd programmeren zie: http://www.cs.uu.nl/docs/vakken/gdp Dat is geen lelijk anglicisme, en de term wordt frequent gebruikt. Zij het alleen al aan de Universiteit van Utrecht.

Ik krijg de indruk uit de onderstaande discussie dat paralel programmeren de lading niet goed dekt, en dat multiprogrammeren een woord is dat eigenlijk niet gebruikt wordt buiten de nederlandstalige wikipedia.

Nu volg ik zelf nu het vak gedistribueerd programmeren aan de UU, en ik dacht laat ik eens naar het wikipediaartikel kijken. Nu heb ik de indruk dat er daadwerkelijk op gedistribueerd programmeren wordt gemikt met dit artikel... Als dit zo is (graag even bevestigen aan de hand van de vakbeschrijving op http://www.cs.uu.nl/education/vak.php?vak=INFOGDP&jaar=2006 ) Dan ben ik het niet helemaal met dit artikel eens... Namelijk, het uitrekenen van verschillende delen hoeft geheel niet het doel te zijn: het kan ook een samenwerking betreffen tussen verschillende gelijke processen. (peers), dan wel een servermodel die clients heeft...

Zie bijvoorbeeld de IBM token ring.

Zeker over internet bestaan er zeer veel gedistribueerde toepassingen, en met de hardware van tegenwoordig, zit er al heel veel gedistribueerds in spellen...

Ik vraag daarom hetvolgende: -mag ik de naam veranderen? -kan het het artikel zo aanpassen dat er een, allicht wat moderene beschrijving en toepassing van gedistribueerde systemen komt te staan?

thanks, LordDamorcro

Deze optie is de beste, denk ik. Zowel in de Nederlandse als Engelse vakliteratuur wordt met multiprogrammeren het draaien van meerdere programma's op 1 CPU bedoeld. Aan de verschillende opleidingscentra wordt volgens mij meestal de term 'gedistribueerd' gebruikt, zoals bijvoorbeeld aan de Universiteit Utrecht (zoals LordDamorcro al aangaf), de universiteit van Amsterdam en die van Enschede.
Uitgevoerd Uitgevoerd - MrBlueSky 29 aug 2010 03:07 (CEST)Reageren

Concurrency[brontekst bewerken]

Momenteel wijst Concurrrency door naar dit artikel.

De huidige titel stemt naar mijn gevoel niet goed met de inhoud,maar gaat over concurrency in het algemeen - zie ook de discussie hierboven.

Nar mijn idee is concurrency de term (zonder Nederlandse vertaling) voor het gebruik van tegelijk draaiende processen in het algemeen; bijzondere vormen daarvan zijn dan

  • gedistribueerd programmeren/systemen: hierin vindt het werk op aparte systemen plaatsvindt, met aparte geheugens en/of gegevensopslag, en daardoor meestal ook relatief dure communicatie;
  • parallel(le) programmeren/systemen: hierbij is meestal sprake van een enkel fysiek systeem waarin meerdere parallele processoren tegelijktijdig werk doen; vooral gebruikt voor het rekenen op speciale hardware die hiervoor in de jaren 80 veel werd gebouwd;
  • multiprogramming: een enkel fysiek rekensysteem voorzien van een softwarelaag (meestal het OS) die het doet lijken alsof er sprake is van meerdere, tegelijk draaiende systemen
  • concurrency op applicatieniveau, met daarvoor bedoelde primitieven in de programmeertaal of in bibliotheken, zoals Unix-processen, threads, shared memory, locks/mutexes/semaforen/...
Rp (overleg) 26 aug 2011 14:03 (CEST)Reageren