Toon posts:

1001 processen aanmaken onder linux

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Sinds enige tijd heb ik voor een afstudeerproject een 4 node load-balancing cluster gebouwd met MOSIX. Dit alles draaid op Red-Hat 7.x en werkt fantastisch op 1 punt na...

Het draaien van programma's gaat leuk (heel leuk zelfs :-)), maar wat ik nu zoek is een programma/script wat veel (rekenkundige) processen aanmaakt. Hierbij dacht ik zelf aan het uitrekenen van priemgetallen ofzo. Ik heb ergens gelezen dat je dat soort dingen met een "fork()" functie onder C kunt doen... maaaaaar: ik ben een behoorlijke linux-newbie en heb geen flauw idee waar te beginnen of hoe/waar je moet C programmeren onder linux...

iemand suggestie's :?

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 23:45

deadinspace

The what goes where now?

Als je C wilt leren:
• Zorg dat je gcc en benodigde programma's + een goede editor geinstalleerd hebt.
• Download een toturial, of koop een boek (En dan meteen het C boek: de K&R).
• Happy hacking :)

Als je alleen 100nogwat processes wil spawnen, en niet echt geinteresseerd bent in C leren: Wat jij wil kan ook in shell.
code:
1
for((i=0;i<100;i++)); do rekenprogje & done

Dit start 100 instances van 'rekenprogje' op de achtergrond.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
for i in `seq 1 100` ; do bla & done


is imho een stukje leesbaarder (en genereert ook nog meer processes denk ik : )

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 23:45

deadinspace

The what goes where now?

Op zaterdag 22 december 2001 01:30 schreef blaataaps het volgende:
is imho een stukje leesbaarder
Mja, smaken verschillen. :)
(en genereert ook nog meer processes denk ik : )
Ehm... voor zover ik kan zien genereren beide fragmenten 100 processes.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
jawel, maar die van mij, maakt eerst nog een `seq 1 100`, terwij bij die van j3p bash zelf de telling doet volgens mij : )

Verwijderd

Op zaterdag 22 december 2001 01:57 schreef blaataaps het volgende:
jawel, maar die van mij, maakt eerst nog een `seq 1 100`, terwij bij die van j3p bash zelf de telling doet volgens mij : )
Waar zie jij jepje ergens in dit draadje :? ;)

Zoveel zal het elkaar niet ontlopen hoor. In ieder geval niet zoveel dat het bij 100 processen veel uit zal maken.

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 23:45

deadinspace

The what goes where now?

Op zaterdag 22 december 2001 01:57 schreef blaataaps het volgende:
jawel, maar die van mij, maakt eerst nog een `seq 1 100`,
Tenzij ik mij heel erg vergis spawnen beide fragmenten exact 100 processes... Ik zie het verschil niet heel erg eigenlijk...
terwij bij die van j3p bash zelf de telling doet volgens mij : )
j3p heeft mijn account gecracked en heeft die post onder mijn naam gedaan ja :+

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 17-08 14:28

Apache

amateur software devver

Op zaterdag 22 december 2001 02:41 schreef deadinspace het volgende:

[..]

Tenzij ik mij heel erg vergis spawnen beide fragmenten exact 100 processes... Ik zie het verschil niet heel erg eigenlijk...
[..]

j3p heeft mijn account gecracked en heeft die post onder mijn naam gedaan ja :+
j3p is veel te 1337 :o

If it ain't broken it doesn't have enough features


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Hmm, ik dacht dat j3p gepost had : )


Misschien toch eens gaan lezen welke naam er naast een post staat.

Verwijderd

Kdevelop is een mooie grafische omgeving om te c'en

Verwijderd

Topicstarter
:-) haha (sorry vond de discussie hierboven wel grappig)

maar leesbaar of niet, ik snap het beiden nu ik zie hoe het moet (kan nog wel redelijk programmeren, heb het alleen nooit onder linux/bash gedaan)... maar hoe dan ook: super en bedankt!!! :D

Verwijderd

Op zaterdag 22 december 2001 11:48 schreef Sire het volgende:
Kdevelop is een mooie grafische omgeving om te c'en
"Hoe mooi Kdevelop dan ook is, zonder programmeerkennis gaat het mis." - Oud chinees gezegde

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 17-08 14:28

Apache

amateur software devver

Op zaterdag 22 december 2001 20:07 schreef Sjord het volgende:

[..]

"Hoe mooi Kdevelop dan ook is, zonder programmeerkennis gaat het mis." - Oud chinees gezegde
http://www.ontonet.be/~pcoleman/techinfo/Cursus_C/

kom maar op met die chinese gezegdes >:) :P

[off-topic]
j3p heb jij dit porno binnenhaal scriptje geschreven :? :P
code:
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl

$i = "1";

$b = "bla";

while ($b eq "bla") {

  system("wget http://www.lekkereborsten.nl/userpics/$i.jpg");
  $i++;
}

=>

http://stuff.servicez.org/wat/zou/hier/nou/gestaan/hebben

:D

[edit nelske]
Linkje toch maar ff aangepast, aangezien er ook wat foto's tussen stonden die niet voor de jeugdige kijker geschikt zijn ;)

If it ain't broken it doesn't have enough features


Verwijderd

Wat studeer je? Lijkt me een vreemde studie, als je wel 4-node load-balancing clusters moet bouwen maar geen C leert...

Anyways: nog een C cursus

  • jep
  • Registratie: November 2000
  • Laatst online: 18-08 23:04

jep

:D :D :D :D :D :D :D :D

Ranzige code he? Je moet wat als je snel veel wilt hebben :+

hihihi (die was geheim ;( ) :D

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 17-08 14:28

Apache

amateur software devver

eeej, m'n post is geedit door een mod :(

moet ik nu erg blij of erg teleurgesteld zijn :P

Ik heb trouwens wget al vaker misbruikt :o

If it ain't broken it doesn't have enough features


Verwijderd

Ik gok dat je blij kan zijn dat ik het gedaan heb ;)
Als je teleurgesteld bent, dan verneem ik het wel via ICQ of email :P

  • DeuTeRiuM
  • Registratie: December 1999
  • Laatst online: 11-08 17:01

DeuTeRiuM

http://koelkast.net/

Het kan ook heeeel makkelijk in perl:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl
$aantprocesses = 1001;
for($i=0; $i< $aantprocesses; $i++) {
    &functieomtefunctioneren($i) unless (fork);
}

#Gives child permission to exit
$SIG{CHLD} = \&chldexit;

sub functieomtefunctioneren {
    ($proc_num) = @_;
    print("$proc_num\n");
    sleep 5;
    print("exit $proc_num\n");
    exit(1);
}

#Catches fallen children
sub chldexit {
    wait;
}

en dan waar sleep 5 staat, moet je wat zware reken code maken.. of een oneindige loop met iets.. en waar 1001 staat moet je het aantal processen dat je wil neerzetten.

en de code is een zooi:) maar het werkte net wel geloof ik:)

[04:53:17][roel@roel:~]$ sleep
bash: sleep: command not found


Verwijderd

Ooit zoiets gedaan. Een programmaatje gebouwd dat eerst twee childs forkte en daarna een of andere onzin berekening ging doen (wat sqrt'jes enzo) binnen 0.5 sec zit je aan het max aantal processen. Gaat lekker exponentieel namelijk :). Ik zat toen op een load van 800 ofzo ;) op een gegeven moment kan er dus niks meer geforkt worden en dan stopt het misschien een keer. Misschien heb ik de source nog ergens liggen zal eens kijken.

[sorry eerst wat voutjes]

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 19-08 14:36

odysseus

Debian GNU/Linux Sid

hmm, deze werkt ook prima, al heeft hij geen instelbaar aantal processen dat wordt aangemaakt. Ik heb hem eens geschreven om mijn load wat op te jagen en het werkt inderdaad. In een bestand ('run' bijvoorbeeld) zet je iets als:
code:
1
2
#!/bin/bash
while (/bin/true); do ./run2 && touch $I && rm -f $I ; done

En in een tweede bestand (hier run2) zet je hetzelfde, maar dan terugverwijzend naar 'run' in plaats van 'run2'. Zet de twee bestanden in een directory, zorg dat $I een niet bestaande bestandsnaam bevat en draaien maar ;) . Eventueel voor extra effect geen touch en rm draaien maar een kernelcompile of zo, verzin wat leuks...

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


Verwijderd

Topicstarter
Op zaterdag 22 december 2001 21:08 schreef GiMLi het volgende:
Wat studeer je? Lijkt me een vreemde studie, als je wel 4-node load-balancing clusters moet bouwen maar geen C leert...
Ben 4e jaars MTS-TI (Technische Kantoor Automatisering) en dat beetje linux wat ik heb gehad is nou niet veel te noemen (Kreeg het in de 1e en toen was het nog niet echt zo bekend als nu).
C++ kan ik wel proggen, maar "fork()" had ik nog nooit van gehoord. En dat cluster is een afstudeerproject, dus vandaar...

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 23:45

deadinspace

The what goes where now?

Op maandag 24 december 2001 22:07 schreef bade het volgende:
C++ kan ik wel proggen, maar "fork()" had ik nog nooit van gehoord.
fork() is dan ook geen ANSI function maar een POSIX system call.
En dat cluster is een afstudeerproject, dus vandaar...
geinig :)
Pagina: 1