'Programming'에 해당되는 글 33건

  1. 2014.11.05 Java 7의 Recursive Task
  2. 2014.09.27 rpy2 설치
  3. 2014.09.11 Django 사용
  4. 2014.02.18 Akka
  5. 2014.01.23 C++ 단위테스트
  6. 2013.12.30 C++ coding convention
  7. 2013.05.03 Mac의 svn서버 실행
  8. 2013.04.26 antlr
  9. 2013.02.16 부하발생, Profiling (성능분석용)
  10. 2013.01.27 Web기반 DB관리툴 올챙이

Java 7의 Recursive Task

계산량이 아주 많거나 문제사이즈가 클 경우 쓰레드 별로 문제를 분리해서 Multi Thread방식으로 계산할 수 있도록 합니다.



출처:

http://homes.cs.washington.edu/~djg/teachingMaterials/grossmanSPAC_forkJoinFramework.html





import java.util.concurrent.ForkJoinPool;

import java.util.concurrent.RecursiveTask;


public class SumRecursiveTask extends RecursiveTask<Long> {


static ForkJoinPool fjPool = new ForkJoinPool();//ForkJoin을 위한 Thread Pool

static final int THRESHOLD = 100;

int low;

int high;

int[] array;

public SumRecursiveTask(int[] arr, int lo, int hi) {

array = arr;

low = lo;

high = hi;

}

@Override

protected Long compute() {

if(high -  low < THRESHOLD){//일정수량 미만으로 떨어지면 계산수행

long sum = 0;

for(int i = low; i < high; ++i){

sum += (array[i]);

}

return sum;

}else{

int mid = low + (high - low) / 2;

SumRecursiveTask left = new SumRecursiveTask(array, low, mid);

SumRecursiveTask right = new SumRecursiveTask(array, mid, high);

left.fork(); //신규 Thread 분리지점 (fork되어 생성) 

long rightAns = right.compute();//현재 Thread로 계산하도록 호출

long leftAns = left.join(); //분리된 Thread가 다시 합쳐지는 지점

return leftAns + rightAns;

}

}

public static long sumArray(int[] array){

return fjPool.invoke(new SumRecursiveTask(array, 0, array.length));

}

public static void main(String[] args){

int[] array = new int[1000];

int size = array.length;

for(int i=0; i < size; ++i) {

array[i] = i;

}

long start = System.currentTimeMillis();

long result = SumRecursiveTask.sumArray(array);

long end = System.currentTimeMillis();

System.out.println("Time=" + (end - start));

System.out.println("Result=" + result);

}

}



'Programming > JAVA' 카테고리의 다른 글

Java 7의 Recursive Task  (0) 2014.11.05
Regular Expression, Pattern, Matcher  (0) 2012.10.16
Java Pattern, Matcher 정규표현식 사용 검색  (0) 2012.10.04
자바 디컴파일러 링크  (0) 2012.06.07
Maven Junit테스트 실행 생략처리  (0) 2012.06.05
Java Web Start 및 GWT관련  (0) 2012.05.21

rpy2 설치

1. python win32 extenstion 설치

http://starship.python.net/~skippy/win32/Downloads.html



2. rpy2 설치

아래 사이트에서 rpy2를 다운로드 받도록 함


컴파일된 python library들

http://www.lfd.uci.edu/~gohlke/pythonlibs/

 => rpy2 파일중에 python 버전이 맞는 것을 다운로드 후 실행



3. R 연동 테스트

정상적으로 R과 연동되는지 테스트


>>> import rpy2.robjects as robjects

>>> r = robjects.r

>>> x = r.rnorm(10)

>>> y = r.rnorm(10)

>>> r.X11()

rpy2.rinterface.NULL

>>> r.plot(x,y)

rpy2.rinterface.NULL


'Programming > Python' 카테고리의 다른 글

rpy2 설치  (0) 2014.09.27
Django 사용  (0) 2014.09.11

Django 사용

1. 참조 사이트:  

http://biohackers.net/wiki/RapidWebDevelopmentByDjango


http://jenemia.tistory.com/163



2. 작업순서


1) 기본 프로젝트 생성

   django-admin.py startproject <프로젝트명>



'Programming > Python' 카테고리의 다른 글

rpy2 설치  (0) 2014.09.27
Django 사용  (0) 2014.09.11

Akka

Akka 관련


http://javacan.tistory.com/entry/akka-1-start



'Programming > Framework' 카테고리의 다른 글

Akka  (0) 2014.02.18
antlr  (0) 2013.04.26
Transaction 설정 샘플  (0) 2012.10.17
Anyframe 의 JDBC 실행관련 설정  (0) 2012.10.17

C++ 단위테스트

참조

 

http://code.google.com/p/googletest/wiki/Primer

 

http://surpreem.com/archives/264   (번역)

 

 

 

http://andromedarabbit.net/wp/continuousintegration_2008_06/

 

'Programming > C++' 카테고리의 다른 글

C++ 단위테스트  (0) 2014.01.23
C++ coding convention  (0) 2013.12.30

C++ coding convention

Google C++ Style Guide

http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml



http://www.weirdrealm.com/prog/cppstds.html



http://k.daum.net/qna/openknowledge/view.html?qid=3ZX9L



'Programming > C++' 카테고리의 다른 글

C++ 단위테스트  (0) 2014.01.23
C++ coding convention  (0) 2013.12.30

Mac의 svn서버 실행



*버전확인

svnserve --version



* Repository 디렉토리 만들기 

svnadmin create ./svnrepo



conf폴더의 passw 파일에 사용자 등록
conf폴더의 svnserve.conf 에 설정
 

[general]

### These options control access to the repository for unauthenticated

### and authenticated users.  Valid values are "write", "read",

### and "none".  The sample settings below are the defaults.

anon-access = none

auth-access = write

### The password-db option controls the location of the password

### database file.  Unless you specify a path starting with a /,

### the file's location is relative to the directory containing

### this configuration file.

### If SASL is enabled (see below), this file will NOT be used.

### Uncomment the line below to use the default password file.

password-db = passwd



* svnserve실행처리

svnserve -d --listen-port=3690 -r /Users/xxxx/Public/svnrepo


* etc/rc.local 파일에 실행 등록

/etc/rc.local

/Users/xxxx/Public/svnrepo/subversion.sh



'Programming > 개발툴' 카테고리의 다른 글

Mac의 svn서버 실행  (0) 2013.05.03
부하발생, Profiling (성능분석용)  (0) 2013.02.16
Web기반 DB관리툴 올챙이  (0) 2013.01.27
Cloud 9 IDE , jsfiddle  (0) 2013.01.03
cloud ide 사이트 참조  (0) 2012.12.15
github 관련 참고  (0) 2012.09.08

antlr

개발용 툴 만들때 사용하면 좋을 듯한 parser generator



http://www.antlr.org/



What is ANTLR?

ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It's widely used to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can build and walk parse trees.



'Programming > Framework' 카테고리의 다른 글

Akka  (0) 2014.02.18
antlr  (0) 2013.04.26
Transaction 설정 샘플  (0) 2012.10.17
Anyframe 의 JDBC 실행관련 설정  (0) 2012.10.17

부하발생, Profiling (성능분석용)


부하 테스트용 

ngrinder 

http://www.nhnopensource.org/ngrinder/



jmeter 

http://www.javajigi.net/display/IDE/Using+JMeter



profiling tool: visualvm


visualvm 설명

http://docs.oracle.com/javase/6/docs/technotes/guides/visualvm/index.html



eclipse에서 visualvm 사용하기

http://beyondj2ee.wordpress.com/2012/11/16/eclipse%EC%97%90%EC%84%9C-visualvm-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/


http://dukeom.wordpress.com/2011/12/22/visualvm-%EC%84%A4%EC%B9%98-open-source-java-apm%EC%84%B1%EB%8A%A5%EA%B4%80%EB%A6%AC/




'Programming > 개발툴' 카테고리의 다른 글

Mac의 svn서버 실행  (0) 2013.05.03
부하발생, Profiling (성능분석용)  (0) 2013.02.16
Web기반 DB관리툴 올챙이  (0) 2013.01.27
Cloud 9 IDE , jsfiddle  (0) 2013.01.03
cloud ide 사이트 참조  (0) 2012.12.15
github 관련 참고  (0) 2012.09.08

Web기반 DB관리툴 올챙이


http://beyondj2ee.wordpress.com/2013/01/24/%EA%B5%AD%EB%82%B4-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-db%ED%88%B4-tadpole-%EC%98%AC%EC%B1%99%EC%9D%B4%EB%A5%BC-%EC%86%8C%EA%B0%9C-%ED%95%A9%EB%8B%88%EB%8B%A4/




http://www.slideshare.net/hangum/cloud-13491614



'Programming > 개발툴' 카테고리의 다른 글

Mac의 svn서버 실행  (0) 2013.05.03
부하발생, Profiling (성능분석용)  (0) 2013.02.16
Web기반 DB관리툴 올챙이  (0) 2013.01.27
Cloud 9 IDE , jsfiddle  (0) 2013.01.03
cloud ide 사이트 참조  (0) 2012.12.15
github 관련 참고  (0) 2012.09.08