並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 207件

新着順 人気順

並列の検索結果81 - 120 件 / 207件

  • Go 1.21 リリース連載 contextパッケージに追加されるWithoutCancelでクライアントとの切断に備えてみる | フューチャー技術ブログ

    Go 1.21 リリース連載 contextパッケージに追加されるWithoutCancelでクライアントとの切断に備えてみる はじめにこんにちは。TIG DX ユニット所属、金欠コンサルタントの藤井です。先日、Google Pixel 7aを購入しました。これまでiPhone 7 Plusを使っていたので、使用スマホの時代が7年ほど進みました。Googleは検索エンジンからAI、スマホまで作っていてすごいですね。 ということで今回は、Google発のプログラミング言語であるところのGoの1.21がリリースされることを記念した、Go 1.21 連載 の記事を書きます。 本記事では、いくつか変更の入った、contextパッケージについて記載していきます。 contextそのものについては、フューチャー技術ブログにおいても数多く解説されていますので、詳細な説明は割愛します。数例記載しますので、

      Go 1.21 リリース連載 contextパッケージに追加されるWithoutCancelでクライアントとの切断に備えてみる | フューチャー技術ブログ
    • 非同期と並列 / morrita - Message Passing

      karino2 が 並列プログラムから見たFuture というビデオを作って公開していたので、引っ越しの荷造りをしながら眺めた。 長いのでここにざっくりとした主張をまとめると: Future/Promise (およびその後釜の async/await) は非同期プログラミングで callback hell にならない発明という見方をされているが、 そもそもなぜ callback hell が必要だったかの時代背景が十分に理解されていない。 背景の一つはブラウザ JavaScript のプログラミングモデルにシングルスレッド・ノンブロッキング(イベントループ)という制限があったから。 これは(特にフロントエンド開発者の間では)よく理解されている。 もう一つの視点は SEDA みたいなマルチスレッド・ノンブロッキング環境の必要性で、 こっちはいまいち広く理解されていないように思える。 結果とし

        非同期と並列 / morrita - Message Passing
      • Goにおいてアクターモデルを実現するライブラリ"Molizen"とその未来

        こんにちは。@sanposhihoです。 この記事では、アクターモデルとはなんぞやという話から始まり、僕が卒業論文のプロジェクトとして作成したGoのライブラリ、“Molizen”の紹介をします。 わりと長く、乱文ですが、適宜読み飛ばして興味のある部分だけをご覧いただければと思います。 マサカリは優しく投げてください。ここはこうした方がいいんじゃないかみたいなのも参考にしたいので是非。 Twitter(@sanpo_shiho)に投げていただいても、雑にGitHubのissueを立てていただいてもいいです。 sanposhiho/molizen: Molizen is a typed actor framework for Go. Goのアクターモデルのフレームワークを公開しました。未完成なので暖かく成長を見守ってください🌱 sanposhiho/molizen: Molizen is a

          Goにおいてアクターモデルを実現するライブラリ"Molizen"とその未来
        • AWSを活用した機械翻訳のためのGPU並列処理環境の構築

          はじめにこんにちは、ストックマークでエンジニアをしている麻生です。ストックマークでは、「Anews」というウェブサービスを提供しています。この度、Anewsで新機能導入のために日次バッチの大規模なインフラ変更を行い、GPU並列処理環境を構築しましたのでご紹介します。 組織の自律化を支援するナレッジプラットフォーム「Anews」Anewsは国内外30,000メディアのニュースを毎日収集し、最先端の自然言語処理で個人や組織のミッションに即したニュースをレコメンドします。コメント機能で簡単にチームにアイデアを共有でき、社内の知見者から学ぶことでチームの情報感度が底上げされます。 エンタープライズを中心に、累計1500社以上のお客様にご利用いただいているサービスです。 英語記事をレコメンドする上での課題Anewsでは、記事への行動履歴からユーザーや組織の好みを学習し、記事をレコメンドしています。ユ

            AWSを活用した機械翻訳のためのGPU並列処理環境の構築
          • 書評: 並行プログラミング入門

            まえがき オライリーから発売される「並行プログラミング入門」が若干早く入手できました。せっかくなので、紹介とか感想を書いてみようかと思います。結論だけ先に書いておくと、並行/並列プログラミングに興味があるなら買いましょう必ず役に立ちます。 どんな本? この本は、大学のOSの授業とかで習うような並行/並列プログラミングの基礎を網羅的に扱っている素晴らしい本です。それだけに留まらず近年利用されているような幅広い技術に関する発展的な内容まで広く扱っています。 どんな人におすすめ? 並行/並列プログラミングの基礎が学びたい人 ロックなどの基礎技術の実装例について学びたい人 Rustを使った並行/並列プログラミングについて学びたい人 並行/並列プログラミングの計算モデル(意味論など)について学びたい人 ロックフリー、STM、async/awaitといった最新の技術について学びたい人 書籍の紹介 この

              書評: 並行プログラミング入門
            • RayによるPython分散並列処理入門 - Qiita

              Rayとは RayはPythonにおける分散並列処理を高速かつシンプルに書けるフレームワークで, 既存のコードを並列化することも容易な設計となっています. Rayを使うことでmultiprocessingなどに比べ簡単にプロセスレベルの並列処理を記述することができます. 本記事はRayチュートリアルの内容をもとにしており, コードはPython 3.8.2, Ray 0.8.4での動作を確認しています. インストール ターミナルでpipなどからインストールできます. 使い方 基本的な用途としては覚える文法はray.init ray.remote ray.get の3つのみで, この記事では加えてray.wait ray.put も紹介します. Rayによる並列化の基本 実行に3秒かかる関数 func が二度呼び出され全体の実行に6秒かかる以下のコードについて, func の実行を並列化する

                RayによるPython分散並列処理入門 - Qiita
              • Rustによる並列処理でDynamoDBへのデータ投入を20倍高速化してみた

                はじめに 言語として高速だと謳われているRust。そのRustを使用してDynamoDBへのデータ登録処理を直列処理と複数の並列アルゴリズム処理で速度比較してみました。 DynamoDB DynamoDBは公式で以下のように謳われています。 Amazon DynamoDB の応答時間は 1 桁ミリ秒で、最も要求の厳しいアプリケーションでも一貫してこのパフォーマンスを発揮できます。例を挙げると、2022 年の Amazon プライムデーに Amazon DynamoDB は、1 桁ミリ秒のパフォーマンスで、数兆回の API コールに対して 1 秒あたり 1 億 520 万件のリクエストを確実に処理しました。 上記だけみると爆速のようにも思われますが、読み込みと書き込み双方に以下の制限があります。 BatchWriteItemのデータ投入は1回で25リクエストまで、Queryのデータ取得は1回

                  Rustによる並列処理でDynamoDBへのデータ投入を20倍高速化してみた
                • PySparkはじめました - 分散処理デビューする前にやったこと - JX通信社エンジニアブログ

                  「JX通信社Advent Calendar 2019」10日目の記事です. 昨日は, @rychhrさんの「Pure WebSocketsをサポートしたAWS AppSyncでWebとiOS間のリアルタイムチャットを作ってみた(1)」でした. 改めまして, こんにちは. JX通信社でシニア・エンジニア&データ基盤エンジニアをしています, @shinyorke(しんよーく)と申します. JX通信社では, データ駆動での意思決定および施策実施をより円滑に進めるため, データ基盤の構築・運用を進めながらトライアル的に様々なFrameworkやツールの検証を行っています.*1 このエントリーでは, 私がシュッとPySparkで分散処理をする...前に, 手元で試したときの感想とその知見 のお話を残していきたいと思います. なお, 分散処理そのものの知見・ノウハウではなく, する前にPySparkに

                    PySparkはじめました - 分散処理デビューする前にやったこと - JX通信社エンジニアブログ
                  • ダウンローダーGNU Wgetの後継となる「GNU Wget2 2.0」が公開 | OSDN Magazine

                    GNU Wgetの後継となる「GNU Wget2」の開発チームは9月26日、最新版となる「GNU Wget2 2.0」を公開した。 GNU Wget2はWebサーバーからコンテンツを取得するダウンローダーGNU Wgetの後継で、HTTP、HTTPS、FTP、FTPSを使ってファイルの取得を行う。libwgetを使ってラッピングするようスクラッチから設計し、マルチスレッド対応などの機能を加えた。HTTP2、HTTP圧縮、並列接続、If-Modified-Sinceヘッダ(HTTP)などにより、多くの場合でWget1系よりも高速にダウンロードできるという。ライセンスはGPL v3以上。 バージョン2では、HTTP2アップロードのサポートが加わった。HTML5 ‘download’属性が使用できる–download-attrオプションをサポートしたほか、HTMLダウンロード属性もサポートした。

                      ダウンローダーGNU Wgetの後継となる「GNU Wget2 2.0」が公開 | OSDN Magazine
                    • sync.Cond/コンディション変数についての解説

                      sync.Cond(コンディション変数)について、Goをよく使ってる人たちですら「うまく説明できん」という話がmercarigoで出てたので、あとで誰かの役に立てばよいな、という気持ちで新たな解説記事を書いてみたいと思います。 自分はPerl5をバリバリ書いていた時代ではAE::Cond、Goを使うようになってからはsync.Condと、とにかく非同期処理でピタゴラ装置を作らないといけない時はこの仕組みがあったことでロジックを無駄に小難しくしないで実装することができたので、この仕組みは是非広く知られて欲しいのです。 というわけでまたあらたにGoのsync.Condを解説してみます。 なお、Web+DB Press vol 113の私の連載、「Goにいりては…」でもこの話を書いていますが、あちらの記事では Broadcast を使った方法ではなく、 Signal を使った方法について書いてあ

                        sync.Cond/コンディション変数についての解説
                      • 【C#】マルチスレッド関連操作の詳説。 - ねののお庭。

                        この記事は Qiita C# Advent Calendar 2021 23日目の記事です。 マルチスレッドプログラミングにおける問題。 原子性 コンパイラによる命令の並び替え メモリバリアについて acquire / release acquire / releaseの取り扱いづらさ sequential consistency C#でのマルチスレッド関連操作 lock (statement) volatile (keyword) Volatile (class) Interlocked (class) Common Language Infrastructure (CLI)における volatile read/write の仕様 まとめ References この記事のお話の流れは、①マルチスレッドプログラミングで発生する問題、②それらの問題に対処するためのメモリバイアについて、③それ

                          【C#】マルチスレッド関連操作の詳説。 - ねののお庭。
                        • PHP 8 で Web 以外の世界の扉を叩く

                          PHP カンファレンス 2020 の発表資料 本番で使ったものにスタイルの修正 / リンクの追加など若干の手直しを入れています 本番でうまくデモが動かなかったので、後から録画を幾つか上げています https://twitter.com/sji_ch/status/1337774274606555141 https://twitter.com/sji_ch/status/1337690042165149697 https://twitter.com/sji_ch/status/1337693697907933186Read less

                            PHP 8 で Web 以外の世界の扉を叩く
                          • PythonからDataprocを操作してシームレスに並列処理を実現する - astamuse Lab

                            初めまして。2019年6月にAstamuseにjoinした rinoguchi です。 ついに昨日、日本でも緊急事態宣言が出ましたね。小学校の休校も1ヶ月程度延長されましたし、会社もリモートワークにほぼ移行してますし、ここできっちりウイルスの拡散を防ぎたいところです。 ちなみに、妻がドイツに単身赴任中なのですが、ドイツでは感染者は多くて外出自粛モードになっているものの、現地の人たちはせっかくだからと日曜大工したり、庭を改造したりとそれなりに楽しんでいるみたいです。私たちも制限された環境の中ですが、せっかくなので楽しみたいですね! 屋根瓦. なんとなく並列処理を連想しませんか? はじめに それはそうと、私は当社で、特許データなどの名寄せ(同一人物に対してユニークなIDをふる作業)を担当しております。 特許の名寄せには、人物名・組織名・出願日・共同出願人など様々な特徴を利用するのですが、中国人

                              PythonからDataprocを操作してシームレスに並列処理を実現する - astamuse Lab
                            • テストを5倍速にする - BASEプロダクトチームブログ

                              この記事はBASE Advent Calendar 2019の20日目の記事です。 devblog.thebase.in PAY株式会社でテックリードを務める東と申します。 主にバックエンド全般に広く携わっています。最近はサーバーアプリばかり書いていますがインフラもわりとやります。 当ブログの読者の方には弊社のことをご存じない方もたくさんいらっしゃるかと思いますので、簡単に社の紹介をさせていただきます。 PAY株式会社はBASE株式会社の100%子会社で、オンライン決済サービス「PAY.JP」とID決済サービス「PAY ID」などの決済サービスを開発・運営している会社です。 「支払いのすべてをシンプルに」をミッションに掲げ、お金を扱うすべての事業者・個人がもっと豊かな生活ができることを目指しています。 さて、決済というミッションクリティカルなテーマを扱うにあたって、品質保証は最も重要な課題

                                テストを5倍速にする - BASEプロダクトチームブログ
                              • Pythonで並列処理をするなら知っておくべきGILをできる限り詳しく調べてみた - Qiita

                                最近Pythonでオーケストレーション層(BFF)のアプリケーションを書く機会がありました。 Python3.4からはasyncioが導入され、I/Oバウンドな処理はシングルスレッドでも効率的に捌けるようになったものの、依然としてCPUバウンドな処理はGILが存在することで、シングルプロセス下では並列処理が制限されます。 このことから言語特性として、CPUバウンドよりもI/Oバウンドな処理を複数捌くことに適していると見ることができます。言語選択の意思決定をする際に重要なファクターとなりますが、そのためにはGILの仕組みを改めて知る必要があると思い、調べてみました。 GIL(グローバルインタプリタロック)とは そもそもGILとは何のことでしょうか。 正式にはGlobal Interpreter Lock(グローバルインタプリタロック)といい、PythonやRuby等の言語に見られる排他ロック

                                  Pythonで並列処理をするなら知っておくべきGILをできる限り詳しく調べてみた - Qiita
                                • Cloud Run が GA になったから改めて色々見てみる

                                  この記事は Google Cloud Japan Customer Engineer Advent Calendar 2019 の 7日目の記事です。 本記事で触れるのは Fully managed 版の Cloud Run のみです 🙇 みなさん、こんにちは。Google Cloud の Kazuu( かずー ) です。2019 年 4 月 9 日に Fully managed 版の Cloud Run が Beta としてリリースされてから半年以上経ち、去る 2019 年 11 月 14 日にとうとう GA となりました㊗️ 本記事では GA に至るまでにどんな機能が主に追加されてきたのかリリースノートの時系列で見ていきたいと思います。 Cloud Run の基本的なところを知りたいという方は Next Tokyo の動画や Cloud OnAir も併せてご覧ください。Cloud

                                    Cloud Run が GA になったから改めて色々見てみる
                                  • C++でジョブシステムを作ってみる(1)

                                    ジョブシステム (Job System) ゲームエンジンの勉強をしているとジョブシステムの話がよく出てくるので、実際にC++20で実装してみました。マルチスレッドに慣れていないため、正しいアプローチである確信はありません。重要なミスがあったら教えていただけると助かります。 コードは標準ライブラリにある機能は素直に使い、シンプルな実装を目指します。また、この記事の全てのコードはパブリックドメインとします。 これから、3つのステップでジョブシステムを実装していきます。 ジョブを並列実行する機能 ジョブ同士に依存関係を設定する機能 大きなジョブを分割して並列化する機能 この記事ではステップ1の最も基本的なジョブシステムを実装することを目標にします。 実装に入る前に、雰囲気を伝えるために、各ステップにおけるインターフェイスを示します。 // スレッド数4としてジョブシステムを作成 JobSyste

                                      C++でジョブシステムを作ってみる(1)
                                    • Python3.12で新たにサポートされたsub-interpretersの紹介 | gihyo.jp

                                      門脇(@satoru_kadowaki)です。11月の「Python Monthly Topics」は、Python 3.12の新機能であるsub-interpretersについて紹介します。 2023年10月2日に「 Python 3.12.0 」がリリースされました。今回も気になる新機能が多く、本記事で紹介するsub-interpretersもPythonで並列処理を行うための新機能です。 Python 3.12の新機能については以下のリンクを参照してください。 What’s New In Python 3.12 -Python 3.12.0 Documentation 本記事ではPythonにおける並列実行のこれまでと、sub-interpretersが現状どのように使用できるかについて説明します。 なお、執筆にあたり先日開催されたPyCon APAC 2023において、sub-in

                                        Python3.12で新たにサポートされたsub-interpretersの紹介 | gihyo.jp
                                      • GitHub Actions でテストを並列に実行して高速化する (parallelism)

                                        bin/rspec --format progress --format RspecJunitFormatter --out report/rspec-${{ matrix.node_index }}.xml $(./split-test --junit-xml-report-dir report-tmp --node-index ${{ matrix.node_index }} --node-total 2 --tests-glob 'spec/**/*_spec.rb' --debug) [2021-01-08T07:12:09Z WARN split_test] Timing data not found: /home/runner/work/split-test-example/split-test-example/spec/1_spec.rb ... [2021-01-08T07

                                          GitHub Actions でテストを並列に実行して高速化する (parallelism)
                                        • Rails で大量のレコードを並列処理する - ボクココ

                                          ども、@kimihom です。 今回、大量のレコードを一つずつ処理する実装をしたので、その実装方法をまとめておく。 コードの大枠 以下は全ユーザー(User)に紐づいているレコード(Record) に対して処理をするコードとなっている。 User.all.order("id").each do |u| r_all = u.records r_all.find_in_batches do |records| Parallel.each(records, in_threads: 50) do |r| begin # 処理 ActiveRecord::Base.connection_pool.with_connection do # ActiveRecord を使った処理 end rescue => e puts "err #{e}" end end end r_all = nil end fi

                                            Rails で大量のレコードを並列処理する - ボクココ
                                          • Rubyのスケール時にGVLの特性を効果的に活用する(翻訳)|TechRacho by BPS株式会社

                                            概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: The Practical Effects of the GVL on Scaling in Ruby 原文公開日: 2020/05/11 著者: Nate Berkopec サイト: Speedshop -- フロントエンド、バックエンド、環境を含めたフルスタックのRailsパフォーマンスコンサルタントです。 画像は元記事からの引用ですが、著作権を確認しきれないものはリンクにとどめました。 コンカレンシーとパラレリズムの説明がとても丁寧なのが嬉しいポイントです😋。 概要: MRI RubyのGlobal VM Lock(GVL)は、何かと説明が的外れだったり誤解されたり批判にさらされたりしがちです。RubyはGVLのせいでコンカレンシーにもスケーリングにも縁がないのでしょうか?この点を完全に理解するには、Rubyの仮想マシン(

                                              Rubyのスケール時にGVLの特性を効果的に活用する(翻訳)|TechRacho by BPS株式会社
                                            • コアあまりのはなし- Message Passing

                                              Message Passing is licensed under CC-NC-SA. It has a feed and is hosted by a GitHub organization. Uses this for the OG image.

                                                コアあまりのはなし- Message Passing
                                              • React Concurrent Mode の概要をおさえる - うどん よこみち

                                                はじめに この記事は, Introducing Concurrent Mode (Experimental) – React を,和訳しつつ自分の解釈や図を少しだけ足したものになります. 筆者は,そこまで英語が得意ではないので,一部適切でない表現があるかもしれませんがご了承ください. Introducing Concurrent Mode (Experimental) Blocking vs Interruptible Rendering Concurrent Mode は,バージョンコントロール を使って説明します. ここで言うバージョン管理というのは,gitのようなバージョン管理システムです. ブランチを切って作業を行い,他の人が pull できるように作業ブランチをマスターにマージします. バージョン管理の概念が存在する前と後では,開発ワークフローは大きく異なっていました. ブランチ

                                                  React Concurrent Mode の概要をおさえる - うどん よこみち
                                                • Understanding React Concurrency

                                                  React v18.0 has broken ground by introducing a long-awaited feature: Concurrency! Unfortunately, despite a deluge of resources explaining how to use it, explanations of how it works are sparse. As it is a low-level feature, it’s not critical to understand React’s idea of concurrency, but it doesn’t hurt! This post does not attempt to exhaustively document React’s Concurrent API and best practices.

                                                    Understanding React Concurrency
                                                  • ロックフリーアルゴリズムによるFIFOバッファ - Qiita

                                                    はじめに 私が組み込みプログラミングを始めたころ(まだインターネットもなく組み込みマイコンもAKI-80とかZ80系主流で遊んでいた時代)に大学の先輩に教えてもらったテクニックです。今どきのCPU向けではないですが、私自身が古典的かつ重要な要素が含まれており、組み込みプログラミングに引き込まれたきっかけの一つでもありますので、当時を思い出しつつ記事にしてみます。 「ロックフリーなアルゴリズム」についてはこちらのWikipediaの記事がわかりやすいです。 これらのアルゴリズムは、割り込み禁止やミューテックスなどのロックを用いずに、割り込みハンドラやマルチタスク/マルチスレッドなどの異なる非同期な実行コンテキスト間で情報を渡すことを目的としており、今回はその応用内でのFIFOバッファの構成例となります。 近年ではArduinoなどの組み込みプログラミングも手軽に行える環境が増えています。また

                                                      ロックフリーアルゴリズムによるFIFOバッファ - Qiita
                                                    • GitHub - HigherOrderCO/HVM: A massively parallel, optimal functional runtime in Rust

                                                      Higher-order Virtual Machine 2 (HVM2) is a massively parallel Interaction Combinator evaluator. By compiling programs from high-level languages (such as Python and Haskell) to HVM, one can run these languages directly on massively parallel hardware, like GPUs, with near-ideal speedup. HVM2 is the successor to HVM1, a 2022 prototype of this concept. Compared to its predecessor, HVM2 is simpler, fas

                                                        GitHub - HigherOrderCO/HVM: A massively parallel, optimal functional runtime in Rust
                                                      • 難しい問題をコンパイラレベルで弾くことができるRustの並行処理 データ共有の有無から見る、2つのサンプルコード

                                                        Go、Python、Kotlin、Rust、TypeScript の5つの言語について「並列処理、並行処理の手法」というテーマに絞り解説する「並列処理をGo/Rust/Kotlin/Python/JSで解説!思想の違いを体感しよう」。Rust編では鈴木文太氏が登壇。Rustの並行処理について、データ共有がないパターン、データ共有があるパターンそれぞれのコードを紹介します。 鈴木氏の自己紹介と、今日話すこと 鈴木文太氏(以下、鈴木):よろしくお願いします。「Rustにおける並行処理」について発表していきたいと思います。私はGO株式会社の鈴木文太と申します。2021年6月に入社して、今はタクシー事業者向けの管理画面の開発などをやっています。 今回話すことについてですが、まずプロセスと並行・並列処理の基本について少しお話ししたあとに、スレッド間でデータ共有がない場合のRustのコードと、スレッド

                                                          難しい問題をコンパイラレベルで弾くことができるRustの並行処理 データ共有の有無から見る、2つのサンプルコード
                                                        • PostgreSQL 13正式版リリース。B-Treeインデックスの重複排除、同一テーブル内でのVacuum並列処理など新機能

                                                          オープンソースのリレーショナルデータベース「PostgreSQL 13」の正式版がリリースされました(日本語プレスリリース。 PostgreSQLは、これまで2017年10月にPostgreSQL 10、2018年10月にPostgeSQL 11、2019年10月にPostgreSQL 12がリリースと、毎年この時期に順調にメジャーバージョンアップを続けています。 News: PostgreSQL 13 Released! https://t.co/krna5OWIq3 — PostgreSQL (@PostgreSQL) September 24, 2020 PostgreSQL 13では、標準インデックスであるB-Treeインデックスに重複排除(deduplication)機能が追加されたことで、重複したインデックスタプルをマージした効率の良い表現に変換しインデックスサイズを縮小。デー

                                                            PostgreSQL 13正式版リリース。B-Treeインデックスの重複排除、同一テーブル内でのVacuum並列処理など新機能
                                                          • なぜ Go では何百万もの Goroutine を作れるのに Java は数千のスレッドしか作れないのか?

                                                            なぜ Go では何百万もの Goroutine を作れるのに Java は数千のスレッドしか作れないのか? (この記事は Why you can have millions of Goroutines but only thousands of Java Threads の翻訳です) 経験のあるエンジニアならば JVM 言語で次のようなエラーを見たことがあるでしょう。 [error] (run-main-0) java.lang.OutOfMemoryError: unable to create native thread: [error] java.lang.OutOfMemoryError: unable to create native thread: [error] at java.base/java.lang.Thread.start0(Native Method) [erro

                                                              なぜ Go では何百万もの Goroutine を作れるのに Java は数千のスレッドしか作れないのか?
                                                            • 君はCircleCIを使い倒しているか!CircleCIの実行時間を半分にした話|gendosu

                                                              こんにちは noteでArchitectureチームに所属しています、GENDOSUです。 CircleCI遅い!!(突然) というのも noteでは今までnoteではCircleCIが遅いという課題があり問題があって、CircleCIが遅くなっていました。しかし、〇〇したことで、解決することができました。今回はその方法について書いていきたいと思います。 noteの構成まず、単に遅いと言っても改善できるのかどうか調べないといけないので 現状と環境の把握をしていきます。 簡単にnoteの構成を説明すると以下のようになります。 フロントエンド Vue / Nuxt React / Next(一部) サーバサイド Ruby on Rails テストRSpec CIツール CircleCI CircleCIはサーバサイドに限らずテスト自動化の部分で使われてます。 今回「遅い!」と言っているのはサー

                                                                君はCircleCIを使い倒しているか!CircleCIの実行時間を半分にした話|gendosu
                                                              • [Python] 🐰 なんとなく理解するasyncio 🐢

                                                                大変おまたせしました。 数年前からずっと書く書くと詐欺してきた asycnio の記事です。 日本語のasyncio関連のブログエントリは大体読んだ気がします。(英語の記事も少し) リファレンスが多いので、ページ末に参考URLをリンクしてあります。詳しくはそちらも参照ください。 infoasyncio はいろいろな概念が同居しており、学習コストが高めです。 「なんとなく」とは書きましたが、割と詳細に書いているので概要だけ知りたいという方は 「概要」セクションだけ読んでブラウザバックしたほうがいいかもしれません。タイトル詐欺ですね。 読み進める上でジェネレータの概念が必要ですので、わからないという方は先にこちらからどうぞ。 [Python] 部屋とYシャツとイテレータとジェネレータと私 (何だこのクソみたいなタイトル) なお、この記事では Python 3.7 を使います。 3.7以上でしか

                                                                  [Python] 🐰 なんとなく理解するasyncio 🐢
                                                                • 並列処理管理ライブラリ task を含む、l4goの公開 | IIJ Engineers Blog

                                                                  セキュリティオペレーションセンター と セキュリティ情報統括室 に所属。システム開発者(極) を目指すプログラマ としての活動と、セキュリティアナリストとして活動をしています。うさぎさんのぬいぐるみが相棒 こんにちは、くまさかです。 今回は、Go言語開発を支えるライブラリを公開しましたので、そちらの紹介記事です。 ちなみに今回の記事は、どうしてもGo言語寄りな話が少し登場します。 Go言語に関する説明は、本記事では割愛しますので、本記事を読む前や、読んだ後にGo言語自体を勉強したいと思った方は、IIJ Bootcamp で、僕が作成した Go言語入門コンテンツ か、Go言語 本家 Go tour をお試しください。 さて、では本題のライブラリ紹介です。 GitHub上では、l4go というところにまとめています。 https://github.com/l4go ライブラリの組織名を色々検討

                                                                    並列処理管理ライブラリ task を含む、l4goの公開 | IIJ Engineers Blog
                                                                  • ChatGPTの画期的な点とは ~並列処理ができるのが大きな強み【これからはじめるChatGPTの基礎知識】

                                                                      ChatGPTの画期的な点とは ~並列処理ができるのが大きな強み【これからはじめるChatGPTの基礎知識】
                                                                    • プログラミング言語Crystal、初のメジャーリリースとなるバージョン1.0を公開

                                                                      Rubyに似た構文を使用し、変数の型やメソッド引数を指定する必要がなく、ネイティブコードへのコンパイルが可能なオープンソースのプログラミング言語・Crystalの開発チームは、最初のメジャーリリースとなる「Crystal 1.0」を3月22日(現地時間)にリリースした。 「Crystal 1.0」では言語の安定性が約束されており、少なくとも今後リリースされるバージョン1.xでは、下位互換性に念頭を置き、標準ライブラリの強化は行うものの、以前のバージョンで作成したコードは修正することなくコンパイルして利用できる。 おもな変更内容としては、文字列および文字リテラルがエスケープシーケンスでUnicodeサロゲートの半分を持つことができなくなったほか、std-libにおける非推奨とされていた定義のほとんどが削除され、マクロのgetterおよびpropertyに戻り値の型注釈が追加された。 そのほか

                                                                        プログラミング言語Crystal、初のメジャーリリースとなるバージョン1.0を公開
                                                                      • Ruby 3.3正式リリース。YJITコンパイラの大幅な性能向上、RubyのスレッドスケジューラとしてM:Nスレッドスケジューラ導入など新機能

                                                                        Ruby開発チームは、2023年12月25日にRuby 3.3の正式リリースを発表しました。Rubyは毎年12月25日に新バージョンをリリースすることが恒例となっており、今回も予定通りに新バージョンが登場しています。 Ruby 3.3では、Shopifyが中心となって開発を進めてきたJITコンパイラのYJITコンパイラの大幅な性能向上、Rubyに同梱されているdefault gemとしてPrismパーサの導入、よりコストの小さなM:Nスレッドスケジューラの導入など新機能が加わっています。 Rubyはもともとインタプリタとして登場しましたが、現在では実行速度向上のためにJITコンパイラを取り入れるようになっています。 Ruby 3.1でメインラインにマージされたYJITコンパイラは、ECサイト構築サービスを提供するShopifyが、大規模なRailsアプリケーションにおいてより高い性能向上を

                                                                          Ruby 3.3正式リリース。YJITコンパイラの大幅な性能向上、RubyのスレッドスケジューラとしてM:Nスレッドスケジューラ導入など新機能
                                                                        • DockerイメージのビルドをBuildKitで並列実行し高速化する - 🤖

                                                                          なぜ、ビルドを早くする デプロイ時間の短縮 AutoScaling 等でのインスタンスの追加時間の短縮 CI のビルド時間が短縮 どう、ビルドを早くする 並列性を上げる ビルドキャッシュを効かせる 並列性 本記事では、並列性のみに触れる。 BuildKit を使用する Docker 18.09 のリリースにおいて行われたビルド機能の拡張は、ビルドアーキテクチャーの総見直しにより必要となる機能を導入しています。 BuildKit を統合したことによって、処理性能、ストレージ管理、ツール機能、セキュリティのどれをとっても改善が見られるはずです。 https://matsuand.github.io/docs.docker.jp.onthefly/develop/develop-images/build_enhancements/ $ DOCKER_BUILDKIT=1 docker build

                                                                            DockerイメージのビルドをBuildKitで並列実行し高速化する - 🤖
                                                                          • 多言語からみるマルチコアの活かし方

                                                                            多言語からみるマルチコアの活かし方 はじめに 近年では1つのCPUに複数のコアが搭載されたマルチコアが一般的になっています。 しかし、現状のプログラミング言語ではエンジニアが意識せずにマルチコアをしたプログラムを作ることは難しいです。 そこで、様々な言語から見たマルチコアの活かし方について説明していきます。 プロセスとスレッド プロセスとは1つ1つのアプリケーションといった実行中のプログラムのことで、スレッドは CPU利用の単位です。プロセスは次のように1つ以上のスレッドを持っており、CPUのコア数分だけスレッドを処理することができます。(また、近年ではSMTという技術によって1つの物理コアで2スレッドといった複数のスレッドを処理することができます。2コア4スレッドみたいなやつです) マルチコアを有効活用してプログラムを実行するためにはCPUが処理できるコア数に対して適切な数のスレッドをプ

                                                                              多言語からみるマルチコアの活かし方
                                                                            • 遺伝的アルゴリズムに並列化プログラミングの実施と考察 - Qiita

                                                                              前回の続きです 遺伝的アルゴリズムのサンプルコード 参考文献 「C言語による画像処理入門」2000/11/1 (著)安居院 猛、長尾 智晴 文献のAmazon 準備 # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from threading import Thread class threadAndReturn(Thread): def __init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None): Thread.__init__(self, group, target, name, args, kwargs, daemon=daemon) self._return = N

                                                                                遺伝的アルゴリズムに並列化プログラミングの実施と考察 - Qiita
                                                                              • ゼロコピーで瞬時にプロセス間の大規模データ通信を可能にする「Eclipse iceoryx」ミドルウェア、Eclipse Foundationが公開

                                                                                ゼロコピーで瞬時にプロセス間の大規模データ通信を可能にする「Eclipse iceoryx」ミドルウェア、Eclipse Foundationが公開 Eclipse Foundationは、データをコピーすることなく瞬時にプロセス間でデータ通信を可能にするミドルウェア「Eclipse iceoryx」を公開しました。 The first major release of Eclipse #iceoryx allows for true zero-copy inter-process-communication on Linux, QNX and MacOS and provides C and modern C++ user APIs. Visit the release page to learn more: https://t.co/pvRYWIjcco #opensource #au

                                                                                  ゼロコピーで瞬時にプロセス間の大規模データ通信を可能にする「Eclipse iceoryx」ミドルウェア、Eclipse Foundationが公開
                                                                                • Rust 1.59を早めに深掘り - OPTiM TECH BLOG

                                                                                  こんにちは、R&Dチームの齋藤(@aznhe21)です。 初めてのオフィス引っ越し体験が目前でちょっとワクワクしています。 さて、本日2/25(金)にRust 1.59がリリースされました。 この記事ではRust 1.59での変更点を詳しく紹介します。 2/25は映画「未知との遭遇」が日本で公開された日 ピックアップ 定数ジェネリクスでデフォルト値を使えるようになった 分割代入ができるようになった インラインアセンブリが使えるようになった イテレータのzipがフリー関数になった Cargo.tomlでstripを指定できるようになった 安定化されたAPIのドキュメント std::thread::available_parallelism 制限 エラー サンプル Result::copied サンプル Result::cloned サンプル ops::ControlFlow::is_brea

                                                                                    Rust 1.59を早めに深掘り - OPTiM TECH BLOG

                                                                                  新着記事