0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個高性能異步計算框架介紹

jf_wN0SrCdH ? 來源:Rust語言中文社區(qū) ? 作者:Rust語言中文社區(qū) ? 2022-10-25 09:50 ? 次閱讀

tachyonix:異步多生產(chǎn)單消費有界通道

這個庫是 Asynchronix 的一個分支,它持續(xù)努力地構(gòu)建用于系統(tǒng)仿真的高性能異步計算框架。 這是一個簡潔的異步通道,以快速著稱,但也不會在正確性和質(zhì)量方面取巧。它的性能主要來自于對 MPSC 用例的關(guān)注和一些精心的優(yōu)化,包括:

為全隊列和空隊列事件積極優(yōu)化通知原語。

發(fā)送者一旦創(chuàng)建就不會再分配,即使對于被阻止的發(fā)送者 / 接收者通知。

沒有任何自旋鎖,并且熱點路徑(程序中那些會頻繁執(zhí)行到的代碼)中沒有互斥鎖。

針對單個接收器優(yōu)化的底層隊列。

示例:


use tachyonix; use futures_executor::{block_on, ThreadPool}; let pool = ThreadPool::new().unwrap(); let (mut s, mut r) = tachyonix::channel(3); block_on( async move { pool.spawn_ok( async move { assert_eq!(s.send("Hello").await, Ok(())); }); assert_eq!(r.recv().await, Ok("Hello")); }); GitHub:https://github.com/asynchronics/tachyonix

rsre:重命名工具

使用指南:


USAGE: rsre FILE/DIRECTORY NEW_FULL_NAME OPTIONS: -h, --help Print help information -V, --version Print version information 示例:

# with mv mv ../../foo/bar/bat/foo.txt ../../foo/bar/bat/bar.txt # with rsre rsre ../../foo/bar/bat/foo.txt bar.txt GitHub:https://github.com/TheAwiteb/rsre

exun:錯誤處理

有許多我們不希望發(fā)生的錯誤,但即便錯了我們也不希望panic,當(dāng)然我們也不想花太多時間處理意外錯誤。這就是本項目的用途,你可以保留意外錯誤,直到以后再擔(dān)心它們。 示例:


use exun::*; fn foo(num: &str) -> Result { // 使用 `unexpect` 表示我們預(yù)計不會發(fā)生這個錯誤 let num = num.parse::().unexpect()?; Ok(num) }

use std::Error; use std::{self, Display}; use exun::*; #[derive(Debug)] struct NoNumberError; impl Display for NoNumberError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "no number provided") } } impl Error for NoNumberError {} fn foo(num: Option<&str>) -> Result> { let num = num.ok_or(NoNumberError)?; // 預(yù)計這可能會返回一個錯誤 let num = num.parse::().unexpect()?; // 但我們認(rèn)為這個數(shù)字是可以解析的 Ok(num) }

use std::Error; use std::{self, Display}; use std::ParseIntError; use exun::*; #[derive(Debug)] struct NoNumberError; impl Display for NoNumberError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "no number provided") } } impl Error for NoNumberError {} fn foo(num: Option<&str>) -> Result> { // 預(yù)計可能不會得到一個數(shù)字,所以這樣處理 let num = match num { Some(num) => num, None => return Err(Expected("no number provided")), }; // 但是,我們希望這個數(shù)字是可以解析的 match num.parse() { Ok(int) => Ok(int), Err(e) => Err(Unexpected(e)) } } GitHub:https://github.com/botahamec/exun

StarRust:太空射擊游戲

使用 Rust 和 Bevy 制作的開源橫向展開的太空射擊游戲。 Demo:https://larsdu.github.io/StarRust/ GitHub:https://github.com/LarsDu/StarRust

cosmic-text:多行文本變形和渲染

COSMIC Text 提供了高級文本變形、布局和渲染。這些都被包含在一個簡單抽象中。

文本變形由 rustybuzz 提供,并支持各種高級變形操作。

渲染由 swash 提供,它支持連字和彩色表情符號。

布局是在安全的 Rust 中自定義實現(xiàn)的,支持雙向文本。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接收器
    +關(guān)注

    關(guān)注

    14

    文章

    2451

    瀏覽量

    71701
  • 程序
    +關(guān)注

    關(guān)注

    115

    文章

    3742

    瀏覽量

    80661
  • 計算框架
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    1928

原文標(biāo)題:【Rust 日報】2022-10-23 tachyonix:一個高性能異步計算框架

文章出處:【微信號:Rust語言中文社區(qū),微信公眾號:Rust語言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    #硬聲創(chuàng)作季 家里的音箱壞了,便制作了高性能的移動音箱

    音箱DIY高性能
    Mr_haohao
    發(fā)布于 :2022年10月20日 23:03:23

    Firefly支持AI引擎Tengine,性能提升,輕松搭建AI計算框架

    `Tengine 是OPEN AI LAB 為嵌入式設(shè)備開發(fā)的輕量級、高性能并且模塊化的引擎。基于ARM平臺高效的計算庫實現(xiàn),針對特定硬件平臺的
    發(fā)表于 08-13 15:58

    高性能計算機的發(fā)展歷史是怎樣的?

    高性能計算機的發(fā)展史高性能計算機的內(nèi)容高性能計算機的應(yīng)用高性能計算機的現(xiàn)狀高性能計算機的應(yīng)用領(lǐng)域高性能
    發(fā)表于 09-10 10:42

    HPC高性能計算知識介紹

    HPC高性能計算知識 異構(gòu)并行計算
    發(fā)表于 05-29 17:45

    高性能計算軟件具有哪些缺陷?

    談到高性能計算,很多人都會想到那些每秒可以運行百萬億次、千萬億次計算的超級計算機,如最近炒得很火爆的“天河號”、“曙光6000“等,但很少
    發(fā)表于 08-30 06:35

    簡單實用的MCU程序框架介紹

    簡單實用的MCU程序框架(非操作系統(tǒng),簡單調(diào)度任務(wù)) - 總體介紹?單片機程序,總體上可分為跑操作系統(tǒng)的和沒操作系統(tǒng),對于無MMU的小單片機,操作系統(tǒng)通常是UCOS、RTOS等實時
    發(fā)表于 02-11 06:21

    HarmonyOS多媒體框架介紹

    過程中的性能體驗。 2 、相機框架介紹: 如下圖所示,左側(cè)綠色模塊是目前已經(jīng)開源或者開放的能力。其中包含些鏡頭管理能力,例如鏡頭查詢、生命周期管理,除此之外,也將支持
    發(fā)表于 01-03 16:36

    什么是高性能計算

    什么是高性能計算 高性能計算(HighPerformanceComputing)是計算機科學(xué)的
    發(fā)表于 05-24 23:29 ?4538次閱讀

    高性能計算發(fā)展與應(yīng)用

    高性能計算發(fā)展與應(yīng)用,感興趣的可以看看。
    發(fā)表于 03-24 17:12 ?0次下載

    計算高性能計算的區(qū)別及聯(lián)系

    計算為什么這么火?云計算高性能計算又有著什么樣的淵源?今天我們就詳細(xì)說下云計算
    發(fā)表于 06-26 14:30 ?3372次閱讀

    C++ Web開發(fā)中輕量級、高性能的大利器

    (HTTP)開發(fā) 10 大利器 》,其中介紹些 C/C++ Web 框架。有名為? Oat++ ?的很不錯, 輕量、跨平臺、
    的頭像 發(fā)表于 10-29 10:40 ?3656次閱讀

    詳解Netty高性能異步事件驅(qū)動的網(wǎng)絡(luò)框架

    大家好,今天我們來聊聊Netty的那些事兒,我們都知道Netty是高性能異步事件驅(qū)動的網(wǎng)絡(luò)框架
    的頭像 發(fā)表于 03-16 10:57 ?1755次閱讀

    PyTorch教程-13.2. 異步計算

    改變。MXNet 和 TensorFlow 等深度學(xué)習(xí)框架采用 異步編程模型來提高性能,而 PyTorch 使用 Python 自己的調(diào)度程序?qū)е虏煌?b class='flag-5'>性能權(quán)衡。對于 PyTorch
    的頭像 發(fā)表于 06-05 15:44 ?551次閱讀
    PyTorch教程-13.2. <b class='flag-5'>異步</b><b class='flag-5'>計算</b>

    異步IO框架iouring介紹

    前言 Linux內(nèi)核5.1支持了新的異步IO框架iouring,由Block IO大神也即Fio作者Jens Axboe開發(fā),意在提供套公用的網(wǎng)絡(luò)和磁盤異步IO,不過io_uring
    的頭像 發(fā)表于 11-09 09:30 ?1975次閱讀
    <b class='flag-5'>異步</b>IO<b class='flag-5'>框架</b>iouring<b class='flag-5'>介紹</b>

    帶你了解什么是高性能計算(HPC)

    受益于HPC更高的速度處理大量數(shù)據(jù)的能力,全球正在進(jìn)入HPC大周期,高性能計算的發(fā)展水平已經(jīng)成為衡量國家綜合實力和高科技發(fā)展水平的重要標(biāo)志,美國、歐盟、日本、英國都高度重視
    的頭像 發(fā)表于 07-20 08:28 ?402次閱讀
    帶你了解什么是<b class='flag-5'>高性能</b><b class='flag-5'>計算</b>(HPC)