eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › *.bat i więcej rdzeni
Ilość wypowiedzi w tym wątku: 8

  • 1. Data: 2013-06-26 14:47:08
    Temat: *.bat i więcej rdzeni
    Od: Peter <k...@w...pl>

    W czasach procesorów 1-rdzeniowych wszytko było jasne.
    np taki plik *.bat
    prog.exe par1
    prog.exe par2
    prog.exe par3
    prog.exe par4
    wykonywał się kolejno, po zakończeniu 1-go wykonywał się 2-gi, itd

    Obecnie gdy większość komputerów posiada 2,4,6..rdzeni istnieje potrzebna by
    wykonywały się równolegle. Jak
    obecnie pisze się skrypty by te programy wykonywały się równolegle?

    Drugi problem.
    Procesy równoległe są rozdzielane na wszystkie rdzenie cyklicznie. Jak przypisać żeby
    prog.exe par1 wykonywał
    się na konkretnym rdzeniu

    Jeżeli to ma jakieś znaczenie to OS to Vista

    --
    Peter


  • 2. Data: 2013-06-26 15:02:20
    Temat: Re: *.bat i więcej rdzeni
    Od: bartekltg <b...@g...com>

    W dniu 2013-06-26 14:47, Peter pisze:
    > W czasach procesorów 1-rdzeniowych wszytko było jasne.
    > np taki plik *.bat
    > prog.exe par1
    > prog.exe par2
    > prog.exe par3
    > prog.exe par4
    > wykonywał się kolejno, po zakończeniu 1-go wykonywał się 2-gi, itd


    > Obecnie gdy większość komputerów posiada 2,4,6..rdzeni istnieje
    > potrzebna by wykonywały się równolegle. Jak obecnie pisze się skrypty by
    > te programy wykonywały się równolegle?


    Pod bash jest $, którym kończy się polecenie.
    Pod windowsem

    start prog.exe par1
    start prog.exe par2
    start prog.exe par3
    start prog.exe par4

    nawet ładniej, bo każdy dostanie własną konsolę.

    To był pierwszy wynik w wyszukiwaniu [non blocking bat windows] ;p

    > Drugi problem.
    > Procesy równoległe są rozdzielane na wszystkie rdzenie cyklicznie. Jak
    > przypisać żeby prog.exe par1 wykonywał się na konkretnym rdzeniu

    Np użyć bibliotek do wątków (std thread? leniuchy dalej nie zrobily
    tego na win32, a emulacja posix wolna:) lub do 'zrównoleglania'
    (openMP, MPI). Temat dość rozległy;)

    > Jeżeli to ma jakieś znaczenie to OS to Vista

    Ma, większy lub mniejszy, zależy czego używasz.



    pzdr
    bartekltg



  • 3. Data: 2013-06-26 15:30:07
    Temat: Re: *.bat i więcej rdzeni
    Od: Michoo <m...@v...pl>

    On 26.06.2013 14:47, Peter wrote:
    > W czasach procesorów 1-rdzeniowych wszytko było jasne.
    > np taki plik *.bat
    > prog.exe par1
    > prog.exe par2
    > prog.exe par3
    > prog.exe par4
    > wykonywał się kolejno, po zakończeniu 1-go wykonywał się 2-gi, itd
    >
    > Obecnie gdy większość komputerów posiada 2,4,6..rdzeni istnieje
    > potrzebna by wykonywały się równolegle. Jak obecnie pisze się skrypty by
    > te programy wykonywały się równolegle?

    Zazwyczaj masz jakieś zależności między tymi wywołaniami. Jak możesz to
    imo użyj gnu MAKE i zestawu skryptów.

    >
    > Drugi problem.
    > Procesy równoległe są rozdzielane na wszystkie rdzenie cyklicznie. Jak
    > przypisać żeby prog.exe par1 wykonywał się na konkretnym rdzeniu

    Po co?

    --
    Pozdrawiam
    Michoo


  • 4. Data: 2013-06-26 16:41:22
    Temat: Re: *.bat i więcej rdzeni
    Od: bartekltg <b...@g...com>

    W dniu 2013-06-26 15:02, bartekltg pisze:
    > W dniu 2013-06-26 14:47, Peter pisze:
    >> W czasach procesorów 1-rdzeniowych wszytko było jasne.
    >> np taki plik *.bat
    >> prog.exe par1
    >> prog.exe par2
    >> prog.exe par3
    >> prog.exe par4
    >> wykonywał się kolejno, po zakończeniu 1-go wykonywał się 2-gi, itd
    >
    >
    > > Obecnie gdy większość komputerów posiada 2,4,6..rdzeni istnieje
    > > potrzebna by wykonywały się równolegle. Jak obecnie pisze się skrypty by
    > > te programy wykonywały się równolegle?
    >
    >
    > Pod bash jest $, którym kończy się polecenie.
    > Pod windowsem
    >
    > start prog.exe par1
    > start prog.exe par2
    > start prog.exe par3
    > start prog.exe par4
    >
    > nawet ładniej, bo każdy dostanie własną konsolę.
    >
    > To był pierwszy wynik w wyszukiwaniu [non blocking bat windows] ;p
    >
    >> Drugi problem.
    >> Procesy równoległe są rozdzielane na wszystkie rdzenie cyklicznie. Jak
    >> przypisać żeby prog.exe par1 wykonywał się na konkretnym rdzeniu

    Ciach

    Nie doczytałem pytania.

    start z parematrem /AFFINITY, szczegóły w helpie.

    Pytanie, na co to komu, pozostaje.

    pzdr
    bartekltg





  • 5. Data: 2013-06-26 22:26:07
    Temat: Re: *.bat i więcej rdzeni
    Od: Peter <k...@w...pl>

    bartekltg napisał:
    > W dniu 2013-06-26 15:02, bartekltg pisze:
    >> W dniu 2013-06-26 14:47, Peter pisze:
    >>> W czasach procesorów 1-rdzeniowych wszytko było jasne.
    >>> np taki plik *.bat
    >>> prog.exe par1
    >>> prog.exe par2

    >> Pod windowsem
    >>
    >> start prog.exe par1
    >> start prog.exe par2
    >>
    >> nawet ładniej, bo każdy dostanie własną konsolę.

    Proste. Dziękuję. Sprawdzone.

    Ma jeden dziwny feler
    prog.exe par1 > out.txt wysyła oczywiście wydruk ekranu do pliku
    a
    start prog.exe par1 > out.txt zakłada plik out.txt i nic do niego nie wpisuje. Dziwne

    >>> Procesy równoległe są rozdzielane na wszystkie rdzenie cyklicznie. Jak
    >>> przypisać żeby prog.exe par1 wykonywał się na konkretnym rdzeniu
    >
    > start z parematrem /AFFINITY, szczegóły w helpie.

    Tego na razie nie mogę sprawdzić bo maszyna teraz ma obciążone wszystkie rdzenie i
    dopiero w sobotę gdy będzie
    wolna będę mógł poeksperymentować. Mam nadzieje, że będzie działać zgodnie z opisem
    >
    > Pytanie, na co to komu, pozostaje.

    Jak są np 3 procesy to rozrzuca się je na 4 rdzenie, żeby średnie obciążenie były
    jednakowe. I to ma sens.
    Ale jak są 4 identyczne procesy numeryczne, które wykorzystują 100% mocy rdzenia to
    nie ma potrzeby, żeby je
    przerzucać pomiędzy rdzeniami co powoduje pewne straty czasu. Ile nie wiem i chcę to
    sprawdzić.

    --
    Peter


  • 6. Data: 2013-06-26 23:00:22
    Temat: Re: *.bat i więcej rdzeni
    Od: Edek <e...@g...com>

    Dnia pamiętnego Wed, 26 Jun 2013 22:26:07 +0200, Peter wyjmując peta
    oznajmił:

    > bartekltg napisał:
    >> W dniu 2013-06-26 15:02, bartekltg pisze:
    >>> W dniu 2013-06-26 14:47, Peter pisze:
    >>>> W czasach procesorów 1-rdzeniowych wszytko było jasne.
    >>>> np taki plik *.bat prog.exe par1 prog.exe par2
    >
    >>> Pod windowsem
    >>>
    >>> start prog.exe par1 start prog.exe par2
    >>>
    >>> nawet ładniej, bo każdy dostanie własną konsolę.
    >
    > Proste. Dziękuję. Sprawdzone.
    >
    > Ma jeden dziwny feler prog.exe par1 > out.txt wysyła oczywiście wydruk
    > ekranu do pliku a
    > start prog.exe par1 > out.txt zakłada plik out.txt i nic do niego nie
    > wpisuje. Dziwne

    Nie wiem czy tak samo jest w tym shellu, ale w bash trzeba napisać coś
    w tym stylu:
    start "prog.exe > out.txt"

    >> Pytanie, na co to komu, pozostaje.
    >
    > Jak są np 3 procesy to rozrzuca się je na 4 rdzenie, żeby średnie
    > obciążenie były jednakowe. I to ma sens. Ale jak są 4 identyczne procesy
    > numeryczne, które wykorzystują 100% mocy rdzenia to nie ma potrzeby,
    > żeby je przerzucać pomiędzy rdzeniami co powoduje pewne straty czasu.
    > Ile nie wiem i chcę to sprawdzić.

    Pół żartem pół serio, sprawdź jeszcze ile zmienia działanie sprzętu
    i czy przy aktywnym poruszaniu myszką nie będzie spowolnienia. Powinno
    być bardziej zauważalne niż to o czym piszesz jak masz myszkę przez usb,
    już zupełnie serio.

    --
    Edek


  • 7. Data: 2013-06-27 15:51:19
    Temat: Re: *.bat i więcej rdzeni
    Od: Peter <k...@w...pl>

    Użytkownik Edek napisał:

    >>>> start prog.exe par1
    >>>> start prog.exe par2

    >> Ma jeden dziwny feler prog.exe par1 > out.txt wysyła oczywiście wydruk
    >> ekranu do pliku a
    >> start prog.exe par1 > out.txt zakłada plik out.txt i nic do niego nie
    >> wpisuje. Dziwne
    >
    > Nie wiem czy tak samo jest w tym shellu, ale w bash trzeba napisać coś
    > w tym stylu:
    > start "prog.exe > out.txt"

    Niestety to windows a nie linux, tutaj wyświetli się jedynie tytuł okna 'prog.exe >
    out.txt'
    Stosowałem już różne kombinacje.
    można tak start "tytuł okna" "prog.exe" par1 > out.txt
    Tytuł okna musi mieć cudzysłów, program może mieć cudzysłów a parametry i dalsze nie
    można stosować cudzysłów
    I niestety tylko zakłada plik i nic do niego nie wpisuje.

    problem ominąć można tak. W pliku b0.bat piszemy
    start b1.bat
    start b2.bat
    a w plikach
    b1.bat piszemy prog.exe par1 > b1.txt
    b2.bat piszemy prog.exe par1 > b2.txt
    Teraz wyniki z ekranu zostaną wpisane odpowiednio do pliku b1 i b2.txt
    ale.. okna nie zamykają się samoczynnie po zakończeniu pracy!!.

    >> Ale jak są 4 identyczne procesy
    >> numeryczne, które wykorzystują 100% mocy rdzenia to nie ma potrzeby,
    >> żeby je przerzucać pomiędzy rdzeniami co powoduje pewne straty czasu.
    >> Ile nie wiem i chcę to sprawdzić.
    >
    > Pół żartem pół serio, sprawdź jeszcze ile zmienia działanie sprzętu
    > i czy przy aktywnym poruszaniu myszką nie będzie spowolnienia. Powinno
    > być bardziej zauważalne niż to o czym piszesz jak masz myszkę przez usb,
    > już zupełnie serio.

    Masz rację przy aktywnym machaniu myszką procesy się spowolnią o jakieś 2-4%, ale kto
    macha bez przerwy
    myszką?. Ja kilka razy dziennie macham myszką gdy podglądam postęp obliczeń a nocy
    śpię ;)
    Czy skierowanie procesu tylko do konkretnego rdzenia skróci czas nie wiem. Dowiem się
    gdy zrobię testy w sobotę.

    --
    Peter



  • 8. Data: 2013-06-27 17:36:53
    Temat: Re: *.bat i więcej rdzeni
    Od: bartekltg <b...@g...com>

    W dniu 2013-06-26 22:26, Peter pisze:
    > bartekltg napisał:
    >> W dniu 2013-06-26 15:02, bartekltg pisze:
    >>> W dniu 2013-06-26 14:47, Peter pisze:
    >>>> W czasach procesorów 1-rdzeniowych wszytko było jasne.
    >>>> np taki plik *.bat
    >>>> prog.exe par1
    >>>> prog.exe par2
    >
    >>> Pod windowsem
    >>>
    >>> start prog.exe par1
    >>> start prog.exe par2
    >>>
    >>> nawet ładniej, bo każdy dostanie własną konsolę.
    >
    > Proste. Dziękuję. Sprawdzone.
    >
    > Ma jeden dziwny feler
    > prog.exe par1 > out.txt wysyła oczywiście wydruk ekranu do pliku
    > a
    > start prog.exe par1 > out.txt zakłada plik out.txt i nic do niego nie
    > wpisuje. Dziwne

    Trzeba zapytać googla i poszperać po forach, na szybko nie widzę.
    Ale z przełącznikiem /B (nie uruchamiaj własnej konsoli, tylko w tle,
    a, że przekierowujemy wyjście, to konsola niepotrzebna) działa jak
    trzeba.
    start /B prog.exe par1 > out.txt


    >> Pytanie, na co to komu, pozostaje.
    >
    > Jak są np 3 procesy to rozrzuca się je na 4 rdzenie, żeby średnie
    > obciążenie były jednakowe. I to ma sens.
    > Ale jak są 4 identyczne procesy numeryczne, które wykorzystują 100% mocy
    > rdzenia to nie ma potrzeby, żeby je przerzucać pomiędzy rdzeniami co
    > powoduje pewne straty czasu. Ile nie wiem i chcę to sprawdzić.

    Eee.
    Podnieś piorytet, są przełączniki do tego, tylko ciężko będzie się
    dogadać wtedy z interfejsem:) Nie używaj realtime;-)

    pzdr
    bartekltg




strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: