How_to_proxy

Squidについて Squidはプロキシやリバースプロキシの機能を提供するソフトウェアです。 プロキシを置く理由 主に、サービスの利用者向けのソフトウェアですね。 リバースプロキシを置く理由 リバースプロキシサーバーをバックエンドサーバーの前段に置く理由は、主に以下の5つです。 キャッシュサーバーとして利用 レスポンスを圧縮 (レスポンスの転送を高速化) SSL ターミネーション (暗号化や復号化の処理をリバースプロキシにオフロード) セキュリティの向上 (リバースプロキシでフィルタリング、バックエンドサーバーを隠蔽) 拡張性 (クライアントはリバースプロキシと通信するので、バックエンドサーバーを変更可能) こっちは主に、サービスの提供者側向けのソフトですね。 僕がやりたいこと 全部の通信が、Torみたいに、複数のサーバを介して行われる感じにしたいんですよね。んで、最終目的地はデータベースです。ユーてこれって、openvpnとかでじっそうできるのかな?いやできないか。 ネットワークの通信、頑張って自分で作れたりするのかな。いけそうな気もするな。

August 13, 2023 · 1 min · 20 words · Me

openvpn client in a docker container

やりたいこと webアプリケーションを家のサーバで動かすとなるとセキュリティーの観点からして怖いじゃないですか。やっぱり自宅のipさらしたくないじゃないですか。 だからAWSなどのVPSを借りてそのうえでアプリを動かすんだと思います。 ただね、VPSでは二次記憶で使えるデータ量が決まっているんですね。しかもそのデータ量が結構限られています。例えば僕が契約しているサーバは二次記憶の容量が30GBです。つまり、大規模なデータベースを展開するには、大幅な課金が必要になるわけです。しかもさ、データベースを移植するのって結構面倒だからさ、一回構築したやつを長く使いたいんです。だからね、データベースだけは自宅においておき、アプリケーションが自宅のDBにデータをとりにきたり、おきに来たりすればいいのでは?と今思っているわけです。DBクライアントがデータを取ってくる時の通信量も考えるとどっちが安いかはまだわからないんですけどね。 じゃあ、自宅のルータをポート開放して、ポートフォワードすればいいんじゃねーの?って思うよね。でもね、データベース用のポートを開放しておくのもなんか怖いんですよ。ブルートフォースとか受けて、破られることもあるわけじゃないですか。ということで、vpnを介して自宅のネットワークにアクセスできるようにしておけばいいのではないか?というのが僕の考えです。 vpnクライアントのインストール sudo apt update sudo apt install openvpn vpnクライアント、設定ファイルのインポート config.ovpnをサーバに配置 sudo openvpn --config /path/to/my/ovpn/file パスワードを入力してトンネル完了 openvpnを介して自宅のmysqlサーバに接続 mysql -u ray -h 192.168.3.10 -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 473 Server version: 8.0.33-0ubuntu0.20.04.2 (Ubuntu) Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> いけてしまっている…これはマジで感動!!ネットワークはやはり面白い。仕組みとかはもっと勉強しないといけませんが。 いやー--、実際これはすごいです。マジですごいですわ!!感動ですわ。 ...

August 13, 2023 · 1 min · 157 words · Me

openvpn client in a docker container

やりたいこと webアプリケーションを家のサーバで動かすとなるとセキュリティーの観点からして怖いじゃないですか。やっぱり自宅のipさらしたくないじゃないですか。 だからAWSなどのVPSを借りてそのうえでアプリを動かすんだと思います。 ただね、VPSでは二次記憶で使えるデータ量が決まっているんですね。しかもそのデータ量が結構限られています。例えば僕が契約しているサーバは二次記憶の容量が30GBです。つまり、大規模なデータベースを展開するには、大幅な課金が必要になるわけです。しかもさ、データベースを移植するのって結構面倒だからさ、一回構築したやつを長く使いたいんです。だからね、データベースだけは自宅においておき、アプリケーションが自宅のDBにデータをとりにきたり、おきに来たりすればいいのでは?と今思っているわけです。DBクライアントがデータを取ってくる時の通信量も考えるとどっちが安いかはまだわからないんですけどね。 じゃあ、自宅のルータをポート開放して、ポートフォワードすればいいんじゃねーの?って思うよね。でもね、データベース用のポートを開放しておくのもなんか怖いんですよ。ブルートフォースとか受けて、破られることもあるわけじゃないですか。ということで、vpnを介して自宅のネットワークにアクセスできるようにしておけばいいのではないか?というのが僕の考えです。 vpnクライアントのインストール sudo apt update sudo apt install openvpn vpnクライアント、設定ファイルのインポート config.ovpnをサーバに配置 sudo openvpn --config /path/to/my/ovpn/file パスワードを入力してトンネル完了 openvpnを介して自宅のmysqlサーバに接続 mysql -u ray -h 192.168.3.10 -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 473 Server version: 8.0.33-0ubuntu0.20.04.2 (Ubuntu) Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> いけてしまっている…これはマジで感動!!ネットワークはやはり面白い。仕組みとかはもっと勉強しないといけませんが。 いやー--、実際これはすごいです。マジですごいですわ!!感動ですわ。 ...

August 13, 2023 · 1 min · 171 words · Me

Disown_nohup_screen_tmux

バックグラウンド実行のあれこれについて ジョブをバックグラウンドで実行する方法は、実行したいジョブ、もしくはコマンドの最後に&をつける。 ./job.sh& みたいな感じで。しかしこれだとsshセッションが切れるとバックグラウンドで走っていたジョブも死んでしまう。 なぜか? まずは親子関係について説明しよう。bashの親はsshdで、ジョブはbashの子供として生成される。そして、通常は、「親が死んだらinit (systemd)が親になってくれる」しかし、sshの場合はsshのセッションが切れるとkernelからbashにSIGHUPが送られる。さらに、bashが各プロセスにSIGHUPを送る。 バックグラウンドで走っているジョブを殺すSIGHUPシグナルを無視するためのコマンドがnohupである。これを使うことでプロセスはSIGHUPを無視するようになる。これは、disown -hでも同じである。先に実行するか後で実行するかの違い。 tmux/screen tmuxとかscreenを使おうという話です。screenの話をします。 screenコマンドについて セッションの保存方法 # creationg new session screen # detach the session <ctrl> + <a> d # creating new session with a name screen -S <name> # list the sessions and check the status screen -ls 実験 screenで新しいセッションを作ってその中でsingularityを動かす。 ps axfの結果は以下の通り。 28987 ? S 0:00 sshd: foo@pts/1 28988 pts/1 Ss 0:00 \_ -bash 29057 pts/1 S+ 0:00 \_ screen -S singularity 29058 ? Ss 0:00 \_ SCREEN -S singularity 29059 pts/2 Ss 0:00 \_ /bin/bash 29104 pts/2 Sl 0:00 \_ Singularity runtime parent 29125 pts/2 S+ 0:00 \_ /bin/bash --norc 意図的にbashを切る。 ps xfでログインユーザに関係するプロセスを一覧表示すると一見死んだかに思える。しかし、 ...

July 24, 2023 · 1 min · 202 words · Me

Win5_20230709

win5予想 中京10R ダート1800m 2勝クラス 牝馬限定戦であることに注意してください。 初ダート 昇級戦 コース特徴 ダートは直線は410と結構ながく、最後に結構きつい上り坂があります。2メートルくらい登ります。 ちなみに、東京競馬場が直線510です。 天気 ちまみに昨日も全く雨降ってません。つまり、 良馬場で開催できそうですね。これは前が残ります。 ジャルジェ 坂井が乗るので先行はしそうですね。ただ、今回は、リースタイルってやつもどうやら先行馬なんですよ。そいつが先に行きそう。わからんね。ワンちゃんあるってくらい。 最初出ていって、自分のペースにできれば全然ある。これあるな。 – ハンベルジャイト 頭はない。1800m出し、ちょっと長い気もする。しかも、めちゃめちゃ体重を下げてきているのもなんか、気がかり。でも53キロは強いね。まだまだ成長の余地はあるし。ただ、馬体重を下げてきているのが気がかりなんですよん!!そして勝ち上がりの相手は、1勝クラスを頑張っているやつと。うーん、やっぱりデビューのときより馬体重を下げているのはちょっとないかなー。 サウザンドスマイル: 問答無用で切り。申し訳ない。 – トレデマンド: けんちゃんだから、まあ鞍上はいいのですが、馬がそんなにつよくないとおもう。確かに、1勝クラスでは中京でいい成績を出して入るんですが、透過買ったレースって全部中京なんですけど、いかんせん相手が弱い。申し訳ないが、相手がマジで弱い。話にならんくらい。てことで、中京得意だから、っていう理由には、その時の相手がただ雑魚かったからっていう話にしたいと思う。 アレマーナ: ローテーションが勝ちパターンだね。前回はたたきで、今回狙ってきている。調教も騎手が騎乗。馬体重も順調に上げてきている。今回馬体重が下がっていればワンちゃんあるので、入れておいてほしいかもです。馬体重下げてきてますねー。あります。入れておくの、ありです。いや、普通に考えたらないのよ。やっぱ入れねーわ。 – マヤローザ: 問答無用で切り。さいなら。 ノボリクレバー: 勝ち上がったときの相手、スカンジナビアは1勝クラスで馬券内を恒常的に撮っている。つまり、たまたま勝ち上がってきたやるではない。強さは保証できるのではないか。しかし、タイム指数がね。。。いや、強いんだけどね。 前回は3ヶ月ぶりでたたきでも アコークロー: 距離短縮でどうかってところだね。 わからない。1800の適正がわからない。 勝ち上がりの相手は万年1勝クラスって感じだけれども。 でも調教がだめですね。未勝利相手に一杯で追って先着許しているようではだめです。今回はきりです。特に目立った点もないです。 – グレナデンシロップ: ここで馬体重めっちゃ下げてきたらワンちゃんあるかもってくらい。基本的には大喜利でいい。 ファジェス: きりでお願いします。 リースタル: きりでお願いします。 フォレストキャット 調教がいいですねー。3勝クラスの相手にいい感じでせっています。 これはあるなって感じです。追い込みですが、ワンちゃんです。 タイセイヴィーナス 5ヶ月の休養明けです。馬体重がしっかり戻ってきたみたいです。 ちょっと、体調が戻ってきているみたいで、少し怖いですね。が、調教がだめですね。きりでいいでしょう。 決定馬 1,7,12 結果 12 > 7 > 3 福島10R ダート1700m 2勝クラス 初ダート 昇級戦 ハッスルダンク コース特徴 直線は295m。どうだろう、 休養明け コンソレーション:2年ぶり サンキューレター:1年半ぶり オブで湯モンド:4ヶ月 イサ散るプリンス:3ヶ月 ...

July 9, 2023 · 2 min · 329 words · Me

Linux_thing

個人的、Linuxを触ってて面白かったとか、納得の行ったことをここにメモっておきたい。 disown -hについて sshでつないで、bashでプログラムを実行するとき、そのプログラムはbashの子プロセスとして実行されるのよね。 そもそもbashはsshdの子プロセスとして実行されるのだけれども。 でね、bashの子プロセスとして実行されるわけだから、bashを閉じるとその子プロセスであるプログラムも死ぬんだよね。 でも、bashを抜けても死なないでほしいプログラムってあるわけじゃないですか。それを実現する方法が プロセスを ctrl + zで一旦停止、bgでバックグラウンド実行。そして、disown -h なわけですね。 で、そうするとそのプロセスの親は誰になるか?って不思議に思いますよね。 1058 ? Ss 0:00 1 1080 13483 1836 0.0 /lib/systemd/systemd --user 1059 ? S 0:00 0 0 35244 1184 0.0 \_ (sd-pam) 2345 ? S 0:00 18 0 7408 2860 0.0 sudo hugo server -p 443 --bind=0.0.0.0 --baseURL=https://ingenboy.com/alpha/ 2346 ? Sl 0:18 38 0 2141188 1696712 43.7 \_ hugo server -p 443 --bind=0.0.0.0 --baseURL=https://ingenboy.com/alpha/ そうなんです。systemdなるんですねー。これが結構面白いところ。覚えておいていいです。 ちなみに、親子関係を含めて全プロセスを表示するのが、 ...

July 8, 2023 · 1 min · 73 words · Me

SQL_practice

sqlの問題集ってなかなかないんだよね。ってことで自分で作ることにした!!出典とそのデータベースのダウンロード先、と解答も準備する予定です。 contet CMUの講義で使われていたSQLの問題 僕の大学のITFっていう講義で使われていた問題 オライリー本「初めてのSQL」から持ってきた問題 データベースが入手可能なサイトの紹介 CMUの講義 データベースの出典 IMDb non-commercial dataset ここからダウンロードできます。 データベースの説明については、こちらのデータセットを見てください、と。ですが、こちら、扱いがちょっと面倒くさいので、もっとかんたんにしてくれているやつでいきます。 cmuが用意してくれてたやつで、ダウンロード可能。 映画関係のデータベースになっています。で、データはsqlite3で実行することを前提に作られています。 $ wget https://ingenboy.com/alpha/data/imdb-cmudb2022.db.gz $ gunzip imdb-cmudb2022.db.gz $ sqlite3 imdb-cmudb2022.db # create indices using hte following commands in SQLite CREATE INDEX ix_people_name ON people (name); CREATE INDEX ix_titles_type ON titles (type); CREATE INDEX ix_titles_primary_title ON titles (primary_title); CREATE INDEX ix_titles_original_title ON titles (original_title); CREATE INDEX ix_akas_title_id ON akas (title_id); CREATE INDEX ix_akas_title ON akas (title); CREATE INDEX ix_crew_title_id ON crew (title_id); CREATE INDEX ix_crew_person_id ON crew (person_id); # check the schema .schema 問題 question2[5 points] Find the 10 `Sci-Fi` works with the longest runtimes. Details: Print the title of the work, the premiere date, and the runtime. The column listing the runtime should be suffixed with the string " (mins)", for example, if the runtime_mins value is `12`, you should output 12 (mins). Note a work is Sci-Fi even if it is categorized in multiple genres, as long as Sci-Fi is one of the genres. Your first row should look like this: Cicak-Man 2: Planet Hitam|2008|999 (mins) question3 [5 points] Determine the oldest people in the dataset who were born in or after 1900. You should assume that a person without a known death year is still alive. Details: Print the name and age of each person. People should be ordered by a compound value of their age and secondly their name in alphabetical order. Return the first 20 results. Your output should have the format: NAME|AGE question4[10 points] Find the people who appear most frequently as crew members. Details: Print the names and number of appearances of the 20 people with the most crew appearances ordered by their number of appearances in a descending fashion. Your output should look like this: NAME|NUM_APPEARANCES question5[10 points] Compute intersting statistics on the ratings of content on a per-decade basis. Details: Get the average rating (rounded to two decimal places), top rating, min rating, and the number of releases in each decade. Exclude titles which have not been premiered (i.e. where premiered is NULL). Print the relevant decade in a fancier format by constructing a string that looks like this: 1990s. Order the decades first by their average rating in a descending fashion and secondly by the decade, ascending, to break ties. Your output should have the format: DECADE|AVG_RATING|TOP_RATING|MIN_RATING|NUM_RELEASES question6[10 points] Determine the most popular works with a person who has "Cruise" in their name and is born in 1962. Details: Get the works with the most votes that have a person in the crew with "Cruise" in their name who was born in 1962. Return both the name of the work and the number of votes and only list the top 10 results in order from most to least votes. Make sure your output is formatted as follows: Top Gun|408389 question7 [15 points] List the number of works that premiered in the same year that "Army of Thieves" premiered. Details: Print only the total number of works. The answer should include "Army of Thieves" itself. For this question, determine distinct works by their title_id, not their names. question8[15 points] List the all the different actors and actresses who have starred in a work with Nicole Kidman (born in 1967). Details: Print only the names of the actors and actresses in alphabetical order. The answer should include Nicole Kidman herself. Each name should only appear once in the output. Note: As mentioned in the schema, when considering the role of an individual on the crew, refer to the field category. The roles "actor" and "actress" are different and should be accounted for as such. question9[15 points] For all people born in 1955, get their name and average rating on all movies they have been part of through their careers. Output the 9th decile of individuals as measured by their average career movie rating. Details: Calculate average ratings for each individual born in 1955 across only the movies they have been part of. Compute the quantiles for each individual's average rating using NTILE(10). Make sure your output is formatted as follows (round average rating to the nearest hundredth, results should be ordered by a compound value of their ratings descending and secondly their name in alphabetical order): Stanley Nelson|7.13 Note: You should take quantiles after processing the average career movie rating of individuals. In other words, find the individuals who have an average career movie rating in the 9th decile of all individuals. question10[15 points] Concatenate all the unique titles for the TV Series "House of the Dragon" as a string of comma-separated values in alphabetical order of the titles. Details: Find all the unique dubbed titles for the new TV show "House of the Dragon" and order them alphabetically. Print a single string containing all these titles separated by commas. Hint: You might find Recursive CTEs useful. Note: Two titles are different even if they differ only in capitalization. Elements in the comma-separated value result should be separated with both a comma and a space, e.g. "foo, bar". ITFの問題 データベースの出典 なんかわからんけど、配られてたやつ ...

July 8, 2023 · 7 min · 1354 words · Me

Commnets_on_learning_sql

chapter1 リレーショナルデータベースって便利だよねーって話。 E.F.coddが最初の論文を出したってことだけ覚えておくとかっこいいかもしれないね。 chapter2 データのインポート、エクスポート 外部データのインポート方法をここで説明している。 Mysql公式のチュートリアル用データ ここからほしいデータをダウンロードしてきて、mysql内部から次のコマンドでロードできる mysql -u ray -p mysql> source <path/to/schame/sakila-schedma.sql> mysql> source <path/to/data/sakila-data.sql> って感じやな。ちなみに、自分が作ったデータを外部にエクスポートする方法もあって、 # データベース $ mysqldump -u USER_NAME -p -h HOST_NAME DB_NAME > OUTPUT_FILE_NAME # テーブル $ mysqldump -u USER_NAME -p -h HOST_NAME DB_NAME TABLE_NAME > OUTPUT_FILE_NAME # テーブルの定義とデータのダンプ $ mysqldump -u USER_NAME -p -h HOST_NAME -A -n > OUTPUT_FILE_NAME まあ調べたらあるから調べてみてくれ。データベースの移行はそんなに難しいことではないことだけ頭に入れておいてほしい。 ちなみに、mysqlでのschemaの見方は、 describe customer; 忘れがちだから覚えておいてください!!まじで!!describeを短縮してdescでもオッケーです。 SELECT TABLE_NAME , COLUMN_NAME , COLUMN_TYPE , COLUMN_KEY FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'sakila' ; データ型について 日付に関するデータ型だけ。 ...

July 8, 2023 · 3 min · 500 words · Me

Docker_and_k8s_explained

docker kubernetesの基本の基本 chapter 1,2 dockerはLinuxマシンを想定して作られている。cgroupがLinuxの概念だからね。 コンテナはイメージから作る コンテナはカーネルを持たない。が、カーネル以外のosの機能を持っている (本書ではそこを周辺部分と言っている)。カーネルはホストOSと共有する。だから軽い。 コンテナはdocker Engineがあればどこでも動く コンテナはイメージとして書き出すこともできる!ここがsingularityのsifとは違うところだね。おそらくDockerはデフォルトでsingularityのsandboxと同じように、中身の改変が可能なのではないか?と思っている。まだ確信には至っていない。 –> そのとおりです。dockerはどの時点においても動いているコンテナをイメージとして書き出すことができます。 そのときに使うコマンドが、commitです。 dockerでは物理的なマシンのディスクをマウントすることが可能。 コンテナの外部のディスクに書き込むことで、ほかのコンテナとデータを共有することができる。 dockerイメージはdocker hubからダウンロード可能 chapter3 dockerを使う dockerの環境構築方法が書いてあるだけでした。お疲れ様です。 chapter4 systemctl enable dockerでデーモンを自動起動させてください dockerコマンドの基本構文を抑えましょう docker <上位コマンド> <副コマンド> <オプション> <上位コマンド> == 何を <副コマンド> == どうする っていうのが結構しっくりきました。 ...

July 7, 2023 · 6 min · 1250 words · Me

Error_controlled_progressive_and_adaptable_retrieval_of_scientific_data_with_multilevel_decomposition

Abstruction 近年の大規模な数値シミュレーションは、シミュレーション時のデータ書き込みのみならず、何度も読み出しが実行されるポスト処理においてもストレージがボトルネックになることが多い。 ポスト処理の内容は多岐にわたるが、様々なポスト処理に対応するための条件として、不必要なデータのi/oを極力減らすことがあげられる。本論文では、シミュレーションデータのrefactoring, compressing, retrievalのフレームワークを紹介する。refactoringにより粒度の細かい精度でデータを分解でき、要求した精度でデータを取得することが可能になる。本研究で紹介するフレームワークを使うことで、state-of-the-artの手法を使った時と比べ、複数の精度でデータを要求したときに大幅に取得するデータを減らすことができた。さらに粗い精度でのデータ要求があったときに、分析時間の短縮につながった。 具体的には、本フレームワークを使うことでほかのフレームワークを使った時と比べ、ある精度でのデータ要求があったときに64%のデータ削減を達成した。さらに、1024コアを使って600GBのデータの書き込みと読み込みを実行した際、従来の手法と比較した際、それぞれ1.36倍、2.52倍の性能向上を示せた。 introduction 大規模な数値シミュレーションから生み出されるデータ量は、ストレージのI/O性能を超えている。 並列ファイルシステムは高価なため、増設することが難しい。 一方、並列ファイルシステムに書き込まれたデータは、PFSの容量が圧迫する目的と、長期保存をする目的ですぐに二次記憶に退避される。 PFSのバンド幅は2-2.5Tb/sであるのに対し、二次記憶のバンド幅は1-2GB/sである。そして、このI/Oバンド幅が低いことが、科学的な発見を遅らせる原因となっている。 これらの問題があるため、多くの科学者は可逆圧縮や非可逆圧縮を使い、データの書き込み量や読み込み量を減らす。しかし、可逆圧縮は圧縮率が低いため、先の問題解決には不十分である。このことから近年、より大幅に圧縮が可能な非可逆圧縮が注目を浴びている。非可逆圧縮は、ユーザが指定した許容誤差を保証する範囲でデータの圧縮をする。 しかし、この手法にも欠点がある。 それは、QoIがわからない、つまり、現象の発見に必要な最低限の許容誤差がわからない点である。 非可逆圧縮によるI/Oの恩恵と、QoIを両立させるためには、あるステップで許容誤差を緩めていき、様々な許容誤差で圧縮されたデータをためておけばいいが、それは本末転倒で、結果的に多くのデータをためることになってしまう。さらに、ある誤差で取得したデータの精度が十分でない場合は、再び誤差が小さいデータを1から取得する必要があり、結果的にI/Oを圧迫してしまう。 この問題に対処するのがProgressive compressionである。Progressive compressonとtransmitonは、まずデータを複数の精度に階層的に分解する。そして、ユーザがより高精度のデータを要求するときには、階層構造になったデータのより精度が高い一部分のみをユーザは新たに取得し、それを今までに取得したデータに重ね合わせる。これによりより高精度のデータを得られる。 本研究では、I/Oにボトルネックが生じるという課題を、このProgressive retrievalを用いて解決する。 MGARDというフレームワークを用いることではこれを実現することが可能である。しかし、MGARDはresolution incremental re-compositionをサポートしているのみで、各階層ごとに隣接している精度が粗いという課題がある (これが多分bit-plainを考慮していないっていう話につながるんだと思う) 。本論文ではこれを解決するフレームワークをMGARDを用いて新たに作る。 本研究のcontributionは下記のとおりである。 データリファクタリングアルゴリズムと理論の紹介。本アルゴリズムは、MGARDとbit-plane encodingを組み合わせである。このアルゴリズムは、データを複数の階層の解像度と精度に分解することを可能にする。 データを段階的に取得および再構成できるフレームワークの実装。この段階的な取得により、以下の2つの利点がある:1)データの取得/ストリーミング、再構成、および解析を非同期で実行でき、いつでも既知のエラー範囲内で行えます。2)次の精度レベルに至るデータの部分だけをストリーミングして解析結果が収束するまで、I/Oの負荷を減少。 私たちは貪欲アルゴリズムを一般化して、複数のエラーメトリクスに対してデータの取得効率を改善します。このアルゴリズムは多様な事後解析に適応でき、解析に基づいて再構成されたデータの取得順序を変更することで取得サイズをさらに削減したり、粗い粒度の表現を提供することで解析のパフォーマンスを向上させることができます。また、私たちはフレームワークを最適化します。 chapter2 問題と関連研究 イントロのようやく ・過去10年間におけるデータとストレージ容量の不均衡な成長は深刻な問題である。 ・exascaleコンピューティング時代ではさらに深刻化し、科学的な発見を妨げる要因となっている。 ・ストレージとI/Oの制約に対処する有望な候補として、非可逆圧縮があげられている ・しかし、文献には広範な圧縮技術が存在するにもかかわらず、科学アプリケーションのコミュニティにおけるこれらの受け入れは低い その理由は 1)データの削減プロセスがデータを生成した本来の現象に影響を及ぼす可能性があること。 2)単一のエラー制約の下で削減されたデータが、異なる解析のさまざまなニーズに適合しない可能性があること また、シミュレーションデータはPFSから二次記憶に移される、が二次記憶はバンド幅が小さいためデータの取得が遅くなる。データの生成(例:大規模な実験、シミュレーション)は時折行われるのに対し、生成されたデータはさまざまな研究によって取得される。よって、セカンダリストレージ層の低い帯域幅が不適切な/過剰なデータの取得コストを高める。私たちは、解析に必要な精度にちょうど適合する量のデータをユーザーに提供したいと考えています。 背景 bit-plane encoding (ビットプレーン符号化) 整数をビットで表したときに、桁が上位なビットほど、精度に与える影響が大きい。これは浮動小数点でも同じで、各桁ごとにデータを保存することで、精度に与える影響を優先度付けすることが可能となる。 ...

June 30, 2023 · 3 min · 530 words · Me