原创 NVIDIA CUDA原理和基礎知識

文章目錄1. 爲什麼需要使用GPU2. GPU爲什麼性能高3. 如何運用GPU進行編程3.1 NVIDIA GPU Architecture3.2 Thread Hierarchy3.3 Execution Model3.4 ke

原创 NVIDIA CUDA nbody problem源碼分析

文章目錄簡介理論回顧源碼分析代碼框架GPU加速分析CPU update函數GPU update 函數 簡介 N體問題(n-body problem),也叫多體問題,是一個非常著名物理問題。當N=2N=2N=2時,即爲二體問題,目前

原创 我編程20年的指導原則

My guiding principles after 20 years of programming I’ve been programming since 1999 and this year I’ve officially

原创 標準C++中的string類的用法總結

相信使用過MFC編程的朋友對CString這個類的印象應該非常深刻吧?的確,MFC中的CString類使用起來真的非常的方便好用。但是如果離開了MFC框架,還有沒有這樣使用起來非常方便的類呢?答案是肯定的。也許有人會說,即使不用MFC框架

原创 雲計算中的一些重要概念

什麼是雲計算      曾經被人嚴肅的問到過一個問題,那就是如果要你用一句話,向一個完全沒有計算機知識的農民解釋什麼是雲計算,你該如何說,記得我當時說了一堆類似服務器虛擬化,存儲虛擬化等相關的東西,這個顯然不夠淺顯。如果再給我一次機會,我

原创 Boost.Asio介紹--之四

        下面介紹Boost.Asio的異常處理和計時器(timer) 一  Exceptions         Boost.Asio提供兩種異常處理方式:通過try/catch的方式獲取異常或者通過錯誤碼的方式。        

原创 Linux下Boost.Asio Proactor模式實現分析

背景: epoll的實現是基於回調的,如果fd有期望的事件發生就通過回調函數將其加入epoll就緒隊列中,用戶針對該隊列中的文件句柄發起相應操作,如read等,此時數據真正纔會開始從內核buffer寫入應用buffer中,整個過程是一種同

原创 lsof的基本用法

    當你在計算機上想啓動一個服務,計算機卻提示"port already in use",此時,可以使用lsof命令來查看那個進程佔用了該端口(lsof -i:port). lsof是LiSt Open Files的縮寫,在linux

原创 使用python生成模擬花朵生長的gif動圖(Simulate flower grow process with python)

使用python生成模擬花朵生長的gif動圖(Simulate flower grow process with python) 在網上讀到劉大可的文章《關於“植物身上的黃金分割”的叫你恍然大悟的文章》,裏面的動圖非常有趣,本文是

原创 Modern Microprocessors A 90-Minute Guide

譯者的話 文章標題說是一篇90分鐘的簡介,在我看來,90分鐘不一定能夠讀完,但是內容相當的精彩,完全值得讀上180分鐘:在提高單核的性能上:作者從處理器的頻率出發,分析處理器爲什麼要引入流水線,爲什麼會出現超標量流水器,爲什麼需要

原创 C++智能指針使用須知

我在《C++ 智能指針(shared_ptr/weak_ptr)源碼分析》已經介紹了智能指針的一些使用注意點,本文在此基礎上,基於C++11中的語法特性,介紹一些智能指針的使用須知。 std::unique_ptr 如果不需要共享,

原创 When to use checkbox, when to use radio button

做UI或者GUI界面開發的人對checkbox和radio button都非常熟悉,本文簡要介紹二者的區別和各自適用的使用場景。 CheckBox checkbox中文名叫複選框,在界面上就是一個方框(通常旁邊有個介紹型文字),它有兩

原创 Tutorial: When to Write Which Special Member(編寫C++特殊成員的指導原則)

文章目錄特殊成員組合圖絕大多數情形:rule of zero容器類: Rule of Five (Six)資源管理類:Move-onlyImmoveable ClassesDon’t: Deleted Default Construc

原创 catch2:一個好用的C++單元測試框架

文章目錄爲什麼需要catch簡單易用命令行選項SectionsBDD-styleAssertion MacrosFloating point comparisonsExceptionsMatchersString matchersVe

原创 Undefining the C++ Pre-processor(取消C++中的預處理器)

文章目錄背景正確對待預處理指令未來的預處理器通向 macro-free 應用程序之路“語法宏”可以完全替代預處理器上的宏嗎 ?這就是真實生活嗎?結語 背景 There are only two kinds of languages: