CED TA 活動報告 (2021年11, 12月)

こんにちは。はじめまして。2021年度 Ⅰ類(情報系)計算機室(CED)のTAの上原です。簡単に自己紹介しますと、電通大の修士1年でカーリングの研究をしています。カーリングは1時間ほど体験しただけですが…。

とりあえずこの記事の趣旨である2021年11月と12月のCED TAの活動報告をしたいと思います。

活動報告(2021年11, 12月)

10月末の段階で大学の授業は対面主体方式(対面を主体としつつも、遠隔での授業参加も可能な方式)に切り替わりました。それを受けて、11月は遠隔利用でのトラブルシューティングに加え、CEDのPCを対面で利用した際のトラブルの対応も行いました。具体的な授業名では情報領域演習第二、信号処理実験、MICS実験第二の対応を主に行いました。トラブルの内容はPCがフリーズしたとかそういった内容や、遠隔でPCのGUIを利用するVNCというツールに関連するものが多かったです。

余談:CMakeの紹介

研究では主にC++を用いているのですが、C++を使うにあたって便利な「CMake」というツールを最近知ったので、(書くことも無いので)紹介したいと思います。

簡単に言うとCMakeは様々なプラットフォームでC/C++をビルドするためのツールです。CMakeを使わないと、LinuxではMakefile、WindowsではVisual Studioのソリューションやプロジェクト、MacではXCode(よく知らない)などでビルド設定ファイルを作る必要があり、複数のプラットフォームでC/C++をビルドするのは煩雑になるのですが、CMakeを用いると一つのビルド設定ファイルを作るだけで様々なプラットフォームでビルドできるようになります。なので、複数のプラットフォームでC/C++をビルドしたい人は覚えておいて損は無いと思います。また、多くのC/C++のオープンソースのライブラリもCMakeを用いているので、C/C++ビルド設定ファイルのディファクトスタンダードだと思われます。

CMakeの欠点があるとすれば、日本語の文献の情報が古いため、新しいバージョンの習得には英語を読む必要があることです。現在出回っている情報にはCMakeバージョン2準拠のものとバージョン3準拠のものがありますが、日本語の文献は大体古いバージョン2のものです。バージョン2は色々不自由なので、バージョン3を使うべきなのですが、日本語で調べてもほぼ出てきません。マイナーな技術あるあるですが、こればかりは仕方ないです。

最後にCMake(バージョン3)を利用する上で大変参考になる文献を置いておきます。

  1. An Introduction to Modern CMake: https://cliutils.gitlab.io/modern-cmake/
  2. Professional CMake: A Practical Guide: https://crascit.com/professional-cmake/

1.はCMakeで普通のアプリケーションを作りたい方には情報がまとまっていて、とても良い入門サイトと思います。2.は有料ですが、CMakeでオープンソースのライブラリを作りたい方は購入して読むと救われます。私は救われました。

英語を読むのは大変ですが、習得できればどのプラットフォームでも同じ方法でC/C++プロジェクトを作れるので、めちゃくちゃ便利です。CMakeを習得して良いC/C++ライフを送りましょう!

以上、上原でした。

前期CED TAを振り返って(2021年度版)

2021年度 Ⅰ類(情報系)計算機室(CED)のTAの岡崎です.今回は,CEDにおける今年度前期のTA業務について軽く振り返ります.

本記事執筆時点でのCEDのHP (https://sites.google.com/gl.cc.uec.ac.jp/ced/) の様子

CED,CED TAについて

CEDについてはⅠ類の学生さんであれば知っている方も多いのではないでしょうか.主にⅠ類・I専攻(情報・ネットワーク工学専攻)の学生向けの計算機室として,西9号館2階に”CED”が設置されています.CEDの紹介動画

私たちCED TAは,主に計算機室の開館・閉館作業や,対面で利用者の質問対応を行う予定でした.しかし,新型コロナウイルスの影響で,昨年度と同様,オンライン主体での取り組みに向けた補助業務を行っています.

CED TA Zoomオフィスアワー,HP管理

昨年度より,引き続き行っている取り組みとして,”Zoomオフィスアワー”があります.これは,決まった時間にCED TAがZoomのミーティングルームを開放しておき,時間内の好きなタイミングで学生の皆さんから受けた質問に対応,補助を行うものです.また,遠隔での実験や演習の授業の際にCED TAがサポートに入ることもありました.

皆さんから多く寄せられる質問はCEDのHPにまとめています.特に,遠隔実験,演習で使用するMobaXtermやVNC接続関係の質問が多く寄せられました.

CEDのHP ユーザからの質問 (https://sites.google.com/gl.cc.uec.ac.jp/ced/faq)

また,CED HPの管理を行っており,特にCEDのGUI環境を実行するためのVNCの利用方法についてHP上にまとめています.今学期は皆さんからの質問を受け,VNCの設定方法をブラッシュアップし,設定方法についての動画を作成しました.動画はWindowsはこちらで,Macはこちらです.※UECクラウドアカウントのみ閲覧可能です.

FPGAボードの作成

今年度は昨年度同様,情報数理工学/コンピュータサイエンス実験第一のJ1実験にて学生の皆さんはプログラムで回路を設計するFPGA,およびそれを操作するFPGAボードを遠隔で利用しました.私たちCED TAは半田付けを行い,FPGAボードを作成しました.皆さんの中にはこちらのボードを遠隔で利用した方もいらっしゃるのではないでしょうか.

J1実験で使用するFPGAボード

J1実験のオンライン化の取り組みについては下記の記事をご覧ください.

対面へ向けての取り組み

本記事執筆時点(2021/11/1)では,新型コロナウイルスの感染者数が減少傾向にあり,大学の授業も対面主体方式へと切り替わりました.そのような動きを受け,CEDにおいても対面化に向け計算機の消毒,清掃などを行っています.対面で利用可能な端末は限られていますが,現在は遠隔,対面のどちらの形式でも利用可能にし,皆さんが柔軟に選ぶことができるようにサポートしています.対面では既に十数人の学生の方が来室し,友人同士で相談して実験や演習を行っています.

CEDの計算機
CED TAが学生のサポートを行っている様子

後期は対面化も進み,Ⅰ類1年生の利用も増えます.私たちCED TAは今までCEDを使ったことのない方からの質問や,遠隔利用時のトラブルなどにできる限り答え,サポートいたします.活発に議論しながら計算機に向かう皆さんの姿を見られることを楽しみにしています.今後もCED TAをよろしくお願いします.

FPGAテトリス(オンライン実験)

2020年度のテトリス実験はオンラインで行いました。

実験にはJ1実験で利用したリモート操作可能なFPGAボードを使用しています。テトリス実験は課題の中で音声出力モジュール、映像出力モジュールを作ります。しかし、リモート操作用FPGAボードには映像や音声を出力するための端子がありませんでした。そこで、VGAや音声出力用の端子を利用するために拡張基板をFPGAボードに接続して使用しました。また、リモート操作アプリケーションは実験室の音声を聞ける機能が追加されました。

授業では例年通り1-6回目の授業でテトリスの作成をして、7回目の授業にプレゼン発表をしました。

今年は実験室の開室時間外でもFPGAボードの実機動作確認(遠隔)ができるようになったこともあり、手の込んだ作品が多く見られました。(昨年までは実験室が空いてないと実機動作は出来ませんでした)

また、昨年と使用するFPGAボードが変わり、使用できる回路資源が減ってしまったことから、リソースの少ない回路を作る必要がありました。そのため、テトリミノの形や色、ドット絵、ゲーム性、音など人によって力を入れる場所が異なっていました。

FPGAテトリス(2020/2/5)

情報数理工学/コンピュータサイエンス実験第二の4ラウンド目には「FPGAテトリス」と呼ばれる課題があります。この課題は名前の通りFPGA(書き換え可能なハードウェア)でテトリスをつくる課題です!

テトリス課題ではVerilogと呼ばれる言語を使って、音を生成するモジュール、画面に映像を映す信号を生成するモジュールを作り、それらが完成してからFPGAボードのボタンで操作できるテトリスを作ります。

課題は全7回の授業から構成されていて、最初の1、2回目で音声モジュールの設計をし、3、4回目では映像出力モジュールの設計、5、6回目でテトリスのゲームを実装して、最終回では学生がそれぞれ自分の作ったテトリスについて発表をします。

テトリス課題では下の写真のFPGAボード(Xilinx社のBasys 3)とサウンドブザーを使用します。

Verilogのコードを書いたら専用のツールを使ってコンパイルします。コンパイルして出来たファイルはPCと接続したFPGAに書き込むことで動かすことができます。

発表は一人10分程度で行い、学生はデモ発表に加えて、自分のFPGAテトリスで工夫した部分や、FPGAテトリスを作る上で頑張ったこと、苦労したことについて発表します。

この課題は音楽モジュール、映像信号モジュール、テトリス回路を6回の授業で実装するので、学生はハードなスケジュールでテトリスを作る必要がありましたが、発表の時点では個性的な作品が多くみられました。

テトリス課題はFPGA初心者でも楽しめる課題です。これから実験第二を履修する方は是非テトリス課題を選んでみてはいかがでしょうか?