ホーム » スタッフ (ページ 90)
「スタッフ」カテゴリーアーカイブ
高専ライブ:2018年3月18日(第566回)
- 高専の卒業式の話
- 春休み中の部活の話
- 高専生に聞きたい5つのこと 第17回 IT研究会
- 点字ブロックの日の話
担当:水島(3C,MC)、中島(3C,MIX)、山野(F3)、西(教員)
高専ライブ:2018年3月11日(第565回)
- 始まりの話
- 防災の話
- サイエンス共和国 第23回 「生体認証の話」
- マイブームの話
担当:坂田(F1,MC),西島(3EI,MC)、越後(2E)、西(教員)
教育の情報化フォーラム
3月8日に、総務省主管による「教育の情報化フォーラム」が開催されました。
この中で、福井高専・電子情報工学科が協力している2件の報告がありました。
- 発達障害者プログラマーの育成と就労に繋げる支援とメンターの育成(福井大学)
- IchigoJamでものづくり
地域人材を生かして行う、ものづくりを通した科学技術体感型授業(ナチュラルスタイル)
pow(2,i)の速度
例年、2進数演算の課題を出すと、2i の処理を、pow(2,i) で書く学生さんがいる。
しかしながら、pow() は、double 型なので遅い。これは、2進数の特徴を踏まえれば、1 << i で書けば良い。
試しに、実際の処理速度を測ってみた。
#include <stdio.h> #include <math.h> long long int mask( ) { long long int m ; for( int j = 0 ; j < 10000000 ; j++ ) { m = 0 ; for( int i = 0 ; i < 60 ; i++ ) { m += pow( 2 , i ) ; // m |= (1 << i) ; } } return m ; } int main() { long long int x = mask() ; return 0 ; }
m |= (1 << i) ; --------- 1.296 [sec] m += pow( 2 , i ) ; ----- 44.956 [sec] 40倍の遅さ
型による処理速度の実験
授業のネタとするために、型によって計算時間がどう変化するか実験。レガシーなコンピュータを使ってきた人間には、float とか double とか出てきたら、「Z80な時代の頭」では数倍遅いのを期待したけど、FPU を搭載して当たり前のこの時代、そんなに差は出ない。
FPUという言葉さえ、最近は死語かな…
しかたがないので、macOS , Raspberry-Pi , Arduino 遅さの時代を逆行しながら実験。
// test.cxx #ifndef TYPE #define TYPE int #endif #include <stdio.h> TYPE foo( TYPE i ) { TYPE ans = 0 ; for( int j = 0 ; j < 30000 ; j++ ) { ans += i * i ; } return ans ; } int main() { TYPE y = 0 ; for( TYPE i = 0 ; i < 100000 ; i++ ) { y = foo( i ) ; } return 0 ; }
iMac で実験
iMac で実験。デスクトップ 64 bit マシンだし、そんなに差は出ないのは予想どおり。
bash-3.2$ uname -a Darwin imac2 17.4.0 Darwin Kernel Version 17.4.0: ... root:xnu-4570.41.2~1/RELEASE_X86_64 x86_64 bash-3.2$ g++ -O0 -DTYPE=int test.cxx bash-3.2$ time ./a.out user 0m6.857s bash-3.2$ g++ -O0 -DTYPE="long long int" test.cxx bash-3.2$ time ./a.out user 0m6.831s bash-3.2$ g++ -O0 -DTYPE=float test.cxx bash-3.2$ time ./a.out user 0m8.528s bash-3.2$ g++ -O0 -DTYPE=double test.cxx bash-3.2$ time ./a.out user 0m8.615s
Raspberry-Pi3 で実験
組み込み系の FPU などが貧弱なマシンを想定し、Raspberry-Pi 3 で同じことをやってみた。
64bit整数 long long int が想定外に遅いな。
raspberry-pi:~$ uname -a Linux raspberry-pi 4.14.22-v7+ #1096 SMP ...2018 armv7l GNU/Linux raspberry-pi:~$ gcc -O0 -DTYPE=int test.cxx raspberry-pi:~$ time ./a.out user 0m37.588s raspberry-pi:~$ gcc -O0 -DTYPE="long long int" test.cxx raspberry-pi:~$ time ./a.out user 1m18.535s raspberry-pi:~$ gcc -O0 -DTYPE=float test.cxx raspberry-pi:~$ time ./a.out user 0m52.206s raspberry-pi:~$ gcc -O0 -DTYPE=double test.cxx raspberry-pi:~$ time ./a.out user 0m50.287s
Arduino で実験
同じことを Arduino でやってみた。main のループは 1/10000 の回数にして、10000倍の時間を掲載…
ようやく「Z80 な頭」が期待している実験結果となったかな。
int 6880[sec] 16bit int long 6320[sec] 32bit int float 92080[sec] 32bit float double 92080[sec] Arduino Uno では、double = 32bit で float と同じ
高専ライブ:2018年3月4日(第564回)
収録の模様をお送りしました。
- 春休みの話
- 卒業式の話
- 高専生に聞きたい5つのこと 第16回 茶道同好会
- 花粉症の話
担当:西野(F1,MC)、水島(3C,MIX)、田中(F3)、中村(教員)
高専ライブ:2018年2月25日(第563回)
- 記録的な大雪の話
- テスト期間の9連休について
- サイエンス共和国 第22回 「温泉成分の話」
- 平昌オリンピックの話
- 春休みの話
担当:田中(4B、MC)、木下(4EI、MIX)、越後(2E)、中村(教員)
授業アンケート結果
情報ネットワーク基礎(3EI)
情報構造論(4EI)
データベース(5EI)後期
データベースの授業では、83.8ポイントで、昨年度よりも若干ではあるがポイントも増加している。
例年は、板書のポイントが低いことが多いが、今年度は評価も高かった。
オブジェクト指向プログラミング(PS2)前期
オブジェクト指向プログラミングでは、84.4ポイントであった。電子情報系の学生の受講が無く、機械系・電気電子系学生であったが、課題にもきちんと取り組んでくれたこともあり、評価も高かった。
創造工学演習(4EI)前期
学生からの意見では、「アイデアをまとめる時間を短くして、製作時間を増やして欲しい」という積極的な意見があった。
限られた時間でものづくりまでを行う内容であるため、時間配分の検討が必要と感じた。