모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    반복문님의
    개인페이지입니다
    가입 : 12-06-12
    방문 : 1123회
    닉네임변경 이력
    회원차단
    회원차단해제
     

    반복문님의 댓글입니다.
    번호 제목 댓글날짜 추천/비공감 삭제
    342 [ㅂㅅㄱ]C++ 복사 대입연산자 질문입니다. [새창] 2016-04-22 20:17:06 0 삭제
    http://pastebin.com/YLcHpFJH
    1. &인 이유는 primitive 동작과 일치시키기 위함이고(위 코드 참조),
    대부분의 += 연산은 리턴값이 버려질건데 버려질 오브젝트를 "복사"해서 리턴하는것도 부담이라 (RVO가 있지만 이에 의존하지 않고) 가볍게 레퍼런스만 넘기기 위함이기도 합니다.
    2. this의 타입은 Power *입니다. *this는 l-value Power 타입이고, 이는 암시적으로 Power &타입으로 변환됩니다.
    341 C언어 허접이 질문 드립니다. [새창] 2016-04-19 17:23:30 0 삭제
    memset이나 memcpy 함수 원형에 괜히 void *s 랑 size_t n이 따라붙는게 아니죠.
    340 유닉스 디렉터리명 질문좀 해도될까요? [새창] 2016-04-18 11:59:15 1 삭제

    보통 상위디렉토리 하면 직전 디렉토리를 이야기하지만, 루트부터 전부 같은 이름이래도 됩니다.
    도대체 어디서 그런 이상한 소리를...
    339 BFS 탐색을 Parallel 하게 구현을 어떻게 하나요 .. [새창] 2016-04-18 11:57:30 0 삭제
    흠. lock을 걸 수 있으면 말씀하신것들을 구현할 수 있을 것 같은데, 만약에 더 concurrency를 원해서 lock-free 구현을 하려 한다면 어떨까요.
    338 유닉스 디렉터리명 질문좀 해도될까요? [새창] 2016-04-18 11:30:12 1 삭제

    됩니다.
    337 BFS 탐색을 Parallel 하게 구현을 어떻게 하나요 .. [새창] 2016-04-18 11:18:24 0 삭제
    "적당한 수"를 넣고 시작해도, 탐색 막바지에 leaf 정점이 늘어나서 enqueue속도보다 dequeue 속도가 빨라지면 여전히 오진으로 탐색이 끝나기 전에 끝나는 문제가 생깁니다.
    그리고 동시성 문제에서 "동시성 제어"가 알고리즘에서 빠지고 구현으로 취급받으면 안된다고 생각합니다...
    336 BFS 탐색을 Parallel 하게 구현을 어떻게 하나요 .. [새창] 2016-04-18 10:40:52 0 삭제
    큐가 비었을때 종료하면 곤란한 상황이 곧바로 발생할 수 있습니다.
    스레드 8개가 다음 루프를 동시에 돈다고 합시다.

    1. while(true)
    2. v = grey_queue.dequeue() // dequeue()는 빈 queue에 대해 null을 리턴한다고 합시다.
    3. if (v == null) break;
    4. for(adj in grey_queue.adjacents()) { if adj in WHITE { WHITE.remove(adj); grey_queue.enqueue(adj); } }

    최초 조건으로 grey_queue.enqueue(root) 가 주어질거고
    이중 가장 빠른 스레드 하나가 2. v = grey_queue.dequeue() 를 하면 이 순간 grey_queue가 빕니다.
    그러면 이 스레드가 4. grey_queue.enqueue(adj);를 하기 전까지
    나머지 스레드들은 전부 3. if (v == null) break; 이 되어버리고, 그러면 가장 빨랐던 스레드를 제외한 나머지가 다 종료된 채 싱글스레드랑 같은 루틴이 됩니다.
    335 BFS 탐색을 Parallel 하게 구현을 어떻게 하나요 .. [새창] 2016-04-18 09:46:16 0 삭제
    이런 방법으론 작업이 끝나 스레드가 dequeue()를 멈추고 작업을 종료해야하는 조건 찾기가 힘듭니다.
    334 BFS 탐색을 Parallel 하게 구현을 어떻게 하나요 .. [새창] 2016-04-18 09:34:58 1 삭제
    논문은 여기 http://static.googleusercontent.com/media/research.google.com/ko//archive/mapreduce-osdi04.pdf

    Queue가 없는 BFS 구현체는 다음과 같이 볼 수 있는데, <= 이부분 수정합니다.
    1. 루트를 회색으로 칠한다.
    2. 모든 회색 노드에 대해, 인접한 흰색 노드를 찾는다.
    3. 모든 회색 노드를 검은색으로 칠하고, 2.의 흰색 노드를 회색으로 칠한다.
    4. 회색노드가 없을 때 까지 2-4. 를 반복한다.
    333 BFS 탐색을 Parallel 하게 구현을 어떻게 하나요 .. [새창] 2016-04-18 09:31:55 2 삭제
    저도 처음에 나이브하게 Concurrent Queue랑, atomic boolean 플래그 이용해서 구현한 예제를 생각했는데, 해보니까 이게 종료조건 잡기가 쉽지 않네요. 아는척 하겠다고 제대로 해보지도 않고 뱉었다가 아이고. 죄송합니다.
    근데 그래서 MapReduce를 이용한 구현을 설명하다보니까, 이걸 이용한 구현은 Queue가 없는 싱글스레드 구현체와 크게 다르지 않네요.
    MapReduce에 관한 구글 논문이 있는데, 10쪽정도로 길지 않고, 개념 요약된 블로그 글들이 많으니 한번 찾아 읽어보시면 배경지식 잡는데 도움 되실거라 생각합니다.

    Queue가 없는 BFS 구현체는 다음과 같이 볼 수 있는데,
    1. 루트를 회색으로 칠한다.
    2. 모든 회색 노드에 대해, 인접한 흰색 노드를 회색으로 칠하고, 본인을 검은색으로 칠한다.
    3. 회색노드가 없을 때 까지 2. 를 반복한다.

    map reduce에 이것을 끼워맞추면
    mapper: 회색노드에 대해, 회색 노드가 될 흰색 인접 노드들을 전부 리턴한다.
    reducer: mapper들이 리턴한 회색 노드들의 중복을 없앤다.

    WHITE = all vertice - root
    GREY = [root]
    do {
    map_results = parallel_map(mapper, GREY); // map_results에는 GREY에 인접한 정점들이 마구잡이로 들어가있다.
    GREY = parallel_reduce(reducer, map_results); // reducer를 통해 중복을 제거한다.
    WHITE -= GREY
    } while(GREY != empty);

    하는겁니다. 전체 태스크를 통째로 병렬처리하는게 아니라, 문제를 map과 reduce로 나눠 생각하고, map, reduce 각각을 병렬로 처리하되, map 을 수행하는 때와, reduce를 수행하는때를 분리하고, 필요한만큼 반복하는게 핵심입니다.
    332 BFS 탐색을 Parallel 하게 구현을 어떻게 하나요 .. [새창] 2016-04-18 04:26:40 0 삭제
    일단 싱글스레드 BFS는 어떻게 구현하시나요. 그것부터 보는게 좋겠네요.
    331 fork() 전후에 동적할당하는것에 관해 [새창] 2016-04-18 01:51:41 0 삭제
    Google: fork after malloc
    330 세상의 모든 전화번호를 넣다.jpg [새창] 2016-04-16 12:46:22 2 삭제
    그리고 저 페이지는 저 콤보박스 option 목록으로만 대역폭 400KB를 씁니다.
    329 [Linux] fork()의 실행 순서가 이상하네요 [새창] 2016-04-09 16:43:13 2 삭제
    fork도 안하고 break도 안해서요.
    328 [ㅂㅅㄱ] C++동적할당과 배열 질문드립니다. [새창] 2016-04-01 02:42:23 0 삭제
    1. ReverseString 리턴타입 확인해주세요.
    2. 로컬변수의 주소를 리턴하면 어떤 문제가 생기는지 찾아보세요.



    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]

     
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈