# HG changeset patch # User Yuhi TOMARI # Date 1407831108 -32400 # Node ID f23d647ae3fa7c6c17e1427354c28825327fab5f # Parent 3d5fd010131ddefd2569f5dbd3d415046b1a939b hoge diff -r 3d5fd010131d -r f23d647ae3fa s6/blank.html --- a/s6/blank.html Wed Jul 09 14:53:16 2014 +0900 +++ b/s6/blank.html Tue Aug 12 17:11:48 2014 +0900 @@ -88,7 +88,7 @@ @@ -132,34 +132,85 @@

進捗

+
+ +
+

CPU固定でthreadを生成するAPI(Linux)

+
+int sched_setaffinity(pid_t pid,
+    size_t cpusetsize, const cpu_set_t *mask);
+        
+ +
+

sched_setaffinity Sample

+
+void
+bind_cpu()
+{
+    cpu_set_t mask;
+    __CPU_ZERO(&mask);
+
+    char *p = getenv("BIND_CPU_ID");
+    int cpu_id = atoi(p);
+    __CPU_SET(cpu_id, &mask);
+    sched_setaffinity(0, sizeof(mask), &mask)
+}
+

sarコマンドで確認できるらしい……

+ こんな感じ +
+% sar -P ALL 1 1000
+
+17:51:28          CPU     %user     %nice   %system   %iowait    %steal     %idle
+17:51:29          all     50.00      0.00      0.00      0.00      0.00     50.00
+17:51:29            0      0.00      0.00      0.00      0.00      0.00    100.00
+17:51:29            1    100.00      0.00      0.00      0.00      0.00      0.00
+
+17:51:29          CPU     %user     %nice   %system   %iowait    %steal     %idle
+17:51:30          all     50.25      0.00      0.00      0.00      0.00     49.75
+17:51:30            0      0.00      0.00      0.00      0.00      0.00    100.00
+17:51:30            1    100.00      0.00      0.00      0.00      0.00      0.00
+          
+
+ +
+

CPU固定でthreadを生成するAPI(OSX)

+

apple developerのKernel Programming Guide

+
+ +

glibc 環境構築

install

-          $ mkdir build;cd build
-          $ ../configure --prefix=/home/hiyoko/glibc-2.19/build/bin
-          $ make --debug -j
-          $ make install
+$ mkdir build;cd build +$ ../configure --prefix=/home/hiyoko/glibc-2.19/build/bin +$ make --debug -j +$ make install

compile

-          $ g++  -Wall -g -O0   -c malloc_sample.cc -o malloc_sample.o
-          $ g++  -o malloc_sample malloc_sample.o  -g -static
-                 -I../glibc-2.19/build/bin/include -L../glibc-2.19/build/bin/lib
+$ g++ -Wall -g -O0 -c malloc_sample.cc -o malloc_sample.o +$ g++ -o malloc_sample malloc_sample.o -g -static + -I../glibc-2.19/build/bin/include + -L../glibc-2.19/build/bin/lib
-

次やること

+

Todo

-

CeriumにおけるGPUとMultiCore CPUの同時実行

+

CeriumにおけるGPGPUの最適化