はじめに Pythonは世界的にも人気のあるプログラミング言語ですが、実行速度については課題があります。Pythonの実行速度を高速化したい、という要求は根強く、これまでにも様々なツールや処理系が開発されています。 この記事ではMITの研究者らが開発したPythonを高速化するツール「Codon」について紹介します。 この記事を3行でまとめると: 高性能で簡単に扱えるPythonコンパイラ「Codon」 Pythonとの互換性がありながら、CやC++に匹敵する高速化を実現 実際にPythonコードが100倍速くなることを検証 Codonとは Codonは高性能なPythonコンパイラです。実行時のオーバーヘッドなしにPythonコードをネイティブなマシンコードにコンパイルし、シングルスレッドで10-100倍以上の高速化が実現できます。Codonの開発はGithub上で行われており、2021
traceback — Print or retrieve a stack traceback¶ Source code: Lib/traceback.py This module provides a standard interface to extract, format and print stack traces of Python programs. It exactly mimics the behavior of the Python interpreter when it prints a stack trace. This is useful when you want to print stack traces under program control, such as in a “wrapper” around the interpreter. The modul
これは、なにをしたくて書いたもの? Pythonで、動作しているスレッドのスタックトレースを出力する方法は?ということで。 環境 今回の環境は、こちら。 $ python3 -V Python 3.8.10 使う標準ライブラリ 今回の目的は、このあたりを使えば良さそうです。 traceback --- スタックトレースの表示または取得 — Python 3.8.10 ドキュメント sys --- システムパラメータと関数 — Python 3.8.10 ドキュメント threading --- スレッドベースの並列処理 — Python 3.8.10 ドキュメント 以降、これらを使ってちょっと試していきたいと思います。 スタックトレースを出力するコードを埋め込む まずは、スタックトレースを出力したい処理自体の中に、スタックトレースを出力するコードを埋め込んでみます。 thread_dump
実行中のシステムの挙動を詳細にトレースする仕組みは、特に「よくわからない問題」に遭遇している時に重要です。今回はLinux向けのトレーシングツールの本命とも言えるeBPFを利用した各種ツールを紹介します。 eBPFに関する記事が今回以降、数回にわたって解説されています。あわせてご覧ください。 第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する(今回の記事) 第690回 BCCでeBPFのコードを書いてみる 第692回 sysfsやbpftoolを用いたeBPFの活用 第694回 libbpfとclangでポータブルなBPF CO-REバイナリ作成 第695回 入門BPF CO-RE eBPFとBPF Compiler Collection 改めて言うまでもなく、Linuxカーネルもしくはカーネル上で動いている各種タスクのパフォーマンスや挙動を調べなくてはならない
この記事は、OIT Advent Calendar 2018の17日目の記事です. こんにちは こっそり歩くです.まいかた出て奈良なんとかで院生してます. twitter やったこと 読書メーターをスクレイピングして協調フィルタリングを使った推薦モデルを作った. モチベーション 恒川光太郎の作品が好きだけど,そろそろ全作読み終わるのでいい感じの本が探したい →Amazonの推薦が微妙だったので,とりあえず自分で作ってみようと思った 協調フィルタリングをするのにデータが欲しい →読書メーターからユーザごとの読んだ本を持ってくれば協調フィルタリングいけるか? →スクレイピングしよう (→なんかスクレイピングってハッカーぽくてカッコイイ🤓(やったことないが)) 使ったもの beatifulsoup4 有名どころらしい. HTMLをパースしてくれたり,欲しいタグのみ取り出したりしてくれる. ur
コレステロールは最低摂取基準量はないので0としています(実はこれが伏線になっている)。 そして目的は、一日必要な栄養素を満たす最もカロリーの低い商品の組み合わせとします。金に糸目はつけません。健康第一! 解く 商品の数が96個、栄養素の数が16個なので、とても人間の手では解けません。そこでコンピューターの力を借ります。幸いPuLPというPythonで無料で利用できるソルバーがあるので、これで計算します。ちなみにExcelにもソルバーが搭載されていますが、この程度の数の決定変数でもエラーになって計算できませんでした。 # Import PuLP modeler functions from pulp import * # A new LP problem prob = LpProblem(name="mac", sense=LpMinimize) # Variables AA = LpVar
機械学習など主に予測を目的とした統計手法に強いイメージのPythonでしたが、統計的因果推論を行うためのライブラリ、“DoWhy”がついにリリースされました。 DoWhy | Making causal inference easy — DoWhy | Making Causal Inference Easy documentation これまで因果推論があまり浸透してこなかった*1データサイエンス界に新しい風が吹くのではと期待が高まります。 一方でこのパッケージが何を可能にし、逆に何ができないのかを理解しなければ、雑なデータ分析が増えて逆に有害なのではと思い、今回ブログを書くことにしました。 先に言っておくと、私自身はPythonをメインに使っているわけではありません(使ったことはあるので一応コードを読んで何が起こっているかくらいはわかります)。したがって本記事の目的は、DoWhyライブ
プログラムの動的な振る舞い、特にメモリアクセスの様子をみてみたくなることがあります。 たとえば、2017年のデザインガイアで発表されていたFPGAアクセラレータ開発を支援するためのツール環境では、ValgrindとGDBを使ってメモリアクセスの様子を可視化していて、面白そうだな、やってみたいなと思わされます。 とりあえず Valgrind + GDBでメモリアクセスを確認する方法を、ちょっと試してみました。 Valgrindを使ってみる まずはValgrindを使ってみます。ターゲットはfree忘れの簡単なプログラムです。 #include <stdlib.h> #include <strings.h> #define N (100) #define M (128) void dut() { char *ptr; for(int i = 0; i < N; i++) { ptr = (ch
主な確率分布の関連図 こんにちは、吉岡(@yoshiokatsuneo)です。 Webサービスを運営していると、利用状況を分析・予測したり、A/Bテストなどで検証したりすることがよくあります。 データを一個一個見ていてもよくわからないので、データ全体や、その背景の傾向などがまとめて見られると便利ですよね。そんなとき、データの様子を表現するためによく使われているのが「確率分布」です。 学校の試験などで使われる偏差値も、得点を正規分布でモデル化して、点数を変換したものです。 今回は、Webサービスなどでよく使われる確率分布18種類を紹介します。 それぞれ、Webサービスでの利用例やPythonでグラフを書く方法も含めて説明していきます。コードは実際にオンライン実行環境paiza.IOで実行してみることができますので、ぜひ試してみてください。 【目次】 正規分布 対数正規分布 離散一様分布 連続
数字は書いた順です。 kinetic->melodic->noetic移行中です。 記事中のコードは参考までに、github上のコードも参照してください。 (食い違いがあったらコメントで教えてください) イントロダクション 01 概要 ROSのメリット、デメリット、ユースケースについて説明します。 02 インストール UbuntuのインストールからROSのインストールまで説明します。 11 gitリポジトリ この講座の中のサンプルプログラムが入っているgitリポジトリです。 入門 基礎編 03 Pub & Sub 通信 C++でROSノードを作成し、ビルドし、実行します。 04 roslaunch roslaunchを使用して簡単にROSノードを実行します。 19 roslaunch2 roslaunchのrename、remap、arg、paramについて解説します。 05 ros to
UCB(University of California, Berkeley)の論文を教えてもらい、読んでみることにした(実際には大量にGoogle翻訳した)。 この論文は"Generating the Next Wave of Custom Silicon"という論文である。 著者から分かる通り、RISC-VとChiselの思いっきり関係者である。 Generating the Next Wave of Custom Silicon Borivoje Nikolić, Elad Alon, Krste Asanović, Electrical Engineering and Computer Sciences, University of California, Berkeley, CA, USA https://ieeexplore.ieee.org/xpl/mostRecentIss
濱野さんの「入門Git」を初めて読んだ時、いきなり 第二章から Git の構造の説明を始めてしまう構成に「Git<の使い方>入門」じゃなくて「Git<の作り方>入門」でしたかーっ(さすがメンテナですね)、、と思ったことを覚えています。 入門Git 作者: 濱野純(Junio C Hamano)出版社/メーカー: 秀和システム発売日: 2009/09/24メディア: 単行本購入: 31人 クリック: 736回この商品を含むブログ (155件) を見る それは結構楽しい体験で、それまで全く思っても見なかった「Git作ってみたいな」という うずうずとした衝動がわたしに芽生えるきっかけでした。それ程に Git の設計はシンプルで 手に終えそうで、それでいて「うまくいく仕組み」が備わっている、興味深いものだったのです。まさにハックと呼ぶにふさわしいそれは、VCS全般に抱いていた「しっかり綿密に作りこ
自然言語処理を学ぶ推薦書籍を紹介します。2021年03月現在、自然言語処理を勉強したい理工系の学生・エンジニアの人は、以下の本を推薦します。 (概要)自然言語処理(放送大学出版) (理論)言語処理のための機械学習入門+深層学習による自然言語処理 (実装)Python 機械学習プログラミング 第3版 自然言語処理を勉強したい、非理工系・非エンジニアの人には、以下の本を推薦します。 (数式なし)自然言語処理の基本と技術 (数式あり)自然言語処理(放送大学出版) オライリーから出ている「入門 自然言語処理」は特殊な本(詳しい人がこれを使ってレクチャーしてくれるならともかく、独習に向いていない)で、Python 2 で書かれているだけでなく、すでに動かなくなったコードも多々あり、2019年時点では読まない方がいい本です。(それでもどうしても、意地でも読みたい人は、本家にある Python 3 対応
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く