Wyłączenie optymalizacji w GCC dla konkretnej funkcji
|
1 2 3 |
void testFunction() __attribute__((optimize(0))) { //code } |
|
1 2 3 |
void testFunction() __attribute__((optimize(0))) { //code } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#!/bin/bash if [ $# -eq 0 ] then echo "No arguments supplied" exit 0 fi inputs=() for f in *.pts; do inputs+=($f) done echo ${inputs[@]} arrSize=${#inputs[@]} echo $arrSize div=$(($1-1)) ile=$(($arrSize / $div)) for i in $(eval echo {0..$div}); do echo "Thread/Screen: $i" inp=${inputs[$i]} ff=`echo $inp | sed 's/_//' | sed 's/\.//' | sed 's/pts//'` ff=project$ff screen -md -S "calc$i" fin=$(($div+1)) command="for c in " for j in $(eval echo {$i..$arrSize..$fin}); do command+="$name " name=${inputs[$j]} done command+="; do module load deal.ii/8.2pre-gcc482 &&./Femaft \$c; done " echo $command screen -S "calc$i" -p 0 -X stuff "$command $(printf \\r) " done |
W nawiązaniu do wpisu:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#!/bin/bash inputs=() for f in *.pts; do inputs+=($f) done echo ${inputs[@]} arrSize=${#inputs[@]} echo $arrSize div=$(($1-1)) ile=$(($arrSize / $div)) for i in $(eval echo {0..$div}); do echo "Thread/Screen: $i" inp=${inputs[$i]} ff=`echo $inp | sed 's/_//' | sed 's/\.//' | sed 's/pts//'` ff=project$ff screen -md -S "calc$i" fin=$(($div+1)) for j in $(eval echo {$i..$arrSize..$fin}); do name=${inputs[$j]} screen -S "calc$i" -p 0 -X stuff "module load deal.ii/8.2pre-gcc482 &&./Femaft $name$(printf \\r) " echo "Scheduling $name calculations..."; done done |
Zadanie: uruchomić w screenie n instancji programu z różnymi plikami wejściowymi. Każdy plik wejściowy ma nazwę pokroju {num}_{num}.pts
|
1 2 3 4 5 6 7 8 |
#!/bin/bash for f in *.pts; do ff=`echo $f | sed 's/_//' | sed 's/\.//' | sed 's/pts//'` ff=project$ff screen -md -S $ff screen -S $ff -p 0 -X stuff "module load deal.ii/8.2pre-gcc482 && ./Femaft $f$(printf \\r) " echo "Starting $ff calculations..."; done |
Pętla po wszystkich plikach z rozszerzeniem *.pts, pobranie ich nazwy i usuniecie extra znaków, tak by zostały tylko dwie liczby, ustalenie nazwy screena na project{numer}, indywidualna nazwa – 'project’ jest potrzebna… Continue reading
|
1 2 3 4 5 6 7 8 9 10 11 |
MATRIX_FILE="Matrix.dat" RHS_FILE="rhs.dat" SOLUTION_FILE="solution.dat" perl -pi -w -e 's/\((.*?),(.*?)\).(.*)/($1+1)." ".($2+1)." ".$3/e' $MATRIX_FILE lines=`grep -c ^ $MATRIX_FILE` rows=`tail -n 1 $MATRIX_FILE | cut -f1 -d' '` sed -i "1s/^/"$rows" "$rows" "$lines"\n/" $MATRIX_FILE sed -i '1s/^/%%MatrixMarket matrix coordinate real general\n/' $MATRIX_FILE sed -i "1s/^/"$rows"\n/" $SOLUTION_FILE sed -i "1s/^/"$rows"\n/" $RHS_FILE |
Rozwiązanie: Oddzielnie zbudować wersję Release i Debug ./bjam -j 24 toolset=gcc threading=multi variant=release –stagedir=. –layout=versioned –build-type=complete –with-mpi
Do /etc/vimrc dodać
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
:inoremap Oq 1 :inoremap Or 2 :inoremap Os 3 :inoremap Ot 4 :inoremap Ou 5 :inoremap Ov 6 :inoremap Ow 7 :inoremap Ox 8 :inoremap Oy 9 :inoremap Op 0 :inoremap On . :inoremap OQ / :inoremap OR * :inoremap Ol + :inoremap OS - |
Film z jednego obrazka: ffmpeg -loop 1 -f image2 -i last.png -t 5 -b:v 2M -vcodec msmpeg4 -acodec wmav2 output2.wmv -t – czas trwania animacji -b:v 2M – bitrate, M = 10^6 -vcodec msmpeg4 – użyj kodeka wideo Microsoft Video (*.wmv) -acodec wmav2 – użyj kodeka audio Windows Media Audio… Continue reading
string(REPLACE „-pedantic” „” CMAKE_CXX_FLAGS „${CMAKE_CXX_FLAGS}”)
ffmpeg -f image2 -r 1/0.1 -i ani.%04d.png -c:v libx264 -r 30 video.mp4 Film zakodowany kodekiem x264 wyświetlany 30 klatek na sekundę przy czym każdy obrazek będzie się wyświetlał 0.1s.