MJay 
        
          카테고리 
         
        
          
            검색하기 
           
          
            
          
        
        
          
          
             
          MJSon 
         
       
      
        
          
            
              
                
                  
                  
                    
                    
                      
                          
                          
                            
  «    2025/10    » 
    
      일 
      월 
      화 
      수 
      목 
      금 
      토 
     
   
  
    
        
        
        
      1 
      2 
      3 
      4 
     
    
      5 
      6 
      7 
      8 
      9 
      10 
      11 
     
    
      12 
      13 
      14 
      15 
      16 
      17 
      18 
     
    
      19 
      20 
      21 
      22 
      23 
      24 
      25 
     
    
      26 
      27 
      28 
      29 
      30 
      31 
        
     
   
                           
                        
                          
                          
                        
                          
                          
                        
                          
                          
                        
                     
                   
                 
               
              닫기 
              관리 메뉴 
              
             
           
          
            
            
              
MJay SparkCL  논문을 읽어봄 본문 
    
    
      
            
            Edit 
                        
                    
SparkCL  논문을 읽어봄 
tistory 
Spark CL 
2번 읽고 구현해보자 ㄲ 
Abstract 
Device Programming Layer에서 한다 
Aparapi and Spark programming layer 
 
 
Introduction 
Heterogeneous Environment가 뜨고 있다. 
OpenCL 좋지만, C, C++ 위주로 돼 있어서 별로다 
Hadoop and Spark 
treat computer as a collection of conventional cores 
GPU나 가속기에 대해 잘 통합된 구조가 아니다 spark는 
GPU를 core operation으로 통합하는 게 SparkCL 
이걸 하기 위해 2개의 OpenSouce를 쓴다  
 
 
 
 
구성 
자바 유저 코드를 적으면  
SparkCL Framework에서 코드를 Aparapi Ucore로 보내고 이는 OpenCL Capable Device로 가진다 
SparkCL 프레임워크에 의해 실행되고 SparkCL 코드는 Spark에 코드를 위임하고 클러스터의 OpenCL 가능 장치에 대한 코드를 Aparapi Ucores에 위임합니다. 
 
 
 
 
Spark Layer Modifications 
가속기를 쓰기 위해 조건 이 필요하다   
가속기에서는  
여러 가지 Complex type를 필요하여서 
SparkKernel Type를 만들었다. 
SparkKernel 안에 뭐가있냐면  
 
 
Kernel Function 
mapParameters 
prepare the data and decide which device to use 
 
 
run 
A standard Aparapi kernel that will be executed on each capable device  
 
 
mapReturnValue 
Post Process the Data and handle any activiup or cleanup needed post kernel execution 
 
 
vector addition  
Map and Transformation이 새로운 framework에 맞춰줘야 한다. 
이 새로운 framework가 SparkCL이겠군 
 
 
Spark-SparkCL 통합이 SparkCL에 의해 처리 된 뒤에는 커널이 Aparapi UCores Java 기반 라이브러리와 함께 표준 Spark 작업자에게 전송됩니다. 작업자는 Aparapi UCores Framework [17]를 사용하여 커널을 실행합니다. Aparapi UCores는 Aparapi 프레임 워크의 포크입니다 [18]. 표준 Aparapi 라이브러리는 여러 OpenCL 환경과 큰 데이터 프레임 워크에 쉽게 통합 할 수 있도록 바이너리 실행 흐름 (FPGA를 지원하고 다른 장치를 선택적으로 지원해야 함), 가속기 유형 및 플랫폼 선택 지원을 지원하도록 확장되었습니다.  
 
 
Implementation이 있구먼  
아직 유아기이다. 
더 쉽게 만들 수 있게 해보려고 한다고 한다. 
 
 
 
 
enough data가 존재 안 하면 수동적으로 가속기를 쓰게 해야 한다. 
 
 
 
 
%23%23%23%23%20SparkCL%20%20%uB17C%uBB38%uC744%20%uC77D%uC5B4%uBD04%0A@%5Btistory%5D%0A*%20Spark%20CL%0A%09*%202%uBC88%20%uC77D%uACE0%20%uAD6C%uD604%uD574%uBCF4%uC790%20%u3132%0A%09*%20Abstract%0A%09%09*%20Device%20Programming%20Layer%uC5D0%uC11C%20%uD55C%uB2E4%0A%09%09*%20Aparapi%20and%20Spark%20programming%20layer%0A%09*%20Introduction%0A%09%09*%20Heterogeneous%20Environment%uAC00%20%uB728%uACE0%20%uC788%uB2E4.%0A%09%09*%20OpenCL%20%uC88B%uC9C0%uB9CC%2C%20C%2C%20C++%20%uC704%uC8FC%uB85C%20%uB3FC%20%uC788%uC5B4%uC11C%20%uBCC4%uB85C%uB2E4%0A%09%09*%20Hadoop%20and%20Spark%0A%09%09%09*%20treat%20computer%20as%20a%20collection%20of%20conventional%20cores%0A%09%09%09*%20GPU%uB098%20%uAC00%uC18D%uAE30%uC5D0%20%uB300%uD574%20%uC798%20%uD1B5%uD569%uB41C%20%uAD6C%uC870%uAC00%20%uC544%uB2C8%uB2E4%20spark%uB294%0A%09%09%09*%20GPU%uB97C%20core%20operation%uC73C%uB85C%20%uD1B5%uD569%uD558%uB294%20%uAC8C%20SparkCL%0A%09%09%09%09*%20%uC774%uAC78%20%uD558%uAE30%20%uC704%uD574%202%uAC1C%uC758%20OpenSouce%uB97C%20%uC4F4%uB2E4%0A%09%09%09%09%09*%20SparkCL%0A%09%09%09%09%09*%20Aparapi%0A%09%09*%20%uAD6C%uC131%0A%09%09%09*%20%uC790%uBC14%20%uC720%uC800%20%uCF54%uB4DC%uB97C%20%uC801%uC73C%uBA74%20%0A%09%09%09*%20SparkCL%20Framework%uC5D0%uC11C%20%uCF54%uB4DC%uB97C%20Aparapi%20Ucore%uB85C%20%uBCF4%uB0B4%uACE0%20%uC774%uB294%20OpenCL%20Capable%20Device%uB85C%20%uAC00%uC9C4%uB2E4%0A%09%09%09*%20SparkCL%20%uD504%uB808%uC784%uC6CC%uD06C%uC5D0%20%uC758%uD574%20%uC2E4%uD589%uB418%uACE0%20SparkCL%20%uCF54%uB4DC%uB294%20Spark%uC5D0%20%uCF54%uB4DC%uB97C%20%uC704%uC784%uD558%uACE0%20%uD074%uB7EC%uC2A4%uD130%uC758%20OpenCL%20%uAC00%uB2A5%20%uC7A5%uCE58%uC5D0%20%uB300%uD55C%20%uCF54%uB4DC%uB97C%20Aparapi%20Ucores%uC5D0%20%uC704%uC784%uD569%uB2C8%uB2E4.%0A%09*%20Spark%20Layer%20Modifications%0A%09%09*%20%uAC00%uC18D%uAE30%uB97C%20%uC4F0%uAE30%20%uC704%uD574%20%uC870%uAC74%20%uC774%20%uD544%uC694%uD558%uB2E4%20%0A%09%09%09*%204%uAC00%uC9C0%20%uC815%uB3C4%0A%09%09*%20%uAC00%uC18D%uAE30%uC5D0%uC11C%uB294%20%0A%09%09%09*%20%uC5EC%uB7EC%20%uAC00%uC9C0%20Complex%20type%uB97C%20%uD544%uC694%uD558%uC5EC%uC11C%0A%09%09%09*%20SparkKernel%20Type%uB97C%20%uB9CC%uB4E4%uC5C8%uB2E4.%0A%09%09%09*%20SparkKernel%20%uC548%uC5D0%20%uBB50%uAC00%uC788%uB0D0%uBA74%0A%09%09%09%09*%20run%0A%09%09%09%09%09*%20override%uB791%20%uBE44%uC2B7%uD558%uB2E4%0A%09%09%09%09*%20prepare/pre-process%0A%09%09*%20Kernel%20Function%0A%09%09%09*%20mapParameters%0A%09%09%09%09*%20prepare%20the%20data%20and%20decide%20which%20device%20to%20use%0A%09%09%09*%20run%0A%09%09%09%09*%20A%20standard%20Aparapi%20kernel%20that%20will%20be%20executed%20on%20each%20capable%20device%20%0A%09%09%09*%20mapReturnValue%0A%09%09%09%09*%20Post%20Process%20the%20Data%20and%20handle%20any%20activiup%20or%20cleanup%20needed%20post%20kernel%20execution%0A%09%09%09*%20vector%20addition%0A%09%09%09%09*%20open%20source%uC5D0%20%uC788%uB098%20%uBCF4%uB124%0A%09%09%09*%20Map%20and%20Transformation%uC774%20%uC0C8%uB85C%uC6B4%20framework%uC5D0%20%uB9DE%uCDB0%uC918%uC57C%20%uD55C%uB2E4.%0A%09%09%09%09*%20%uC774%20%uC0C8%uB85C%uC6B4%20framework%uAC00%20SparkCL%uC774%uACA0%uAD70%0A%09%09%09*%20Spark-SparkCL%20%uD1B5%uD569%uC774%20SparkCL%uC5D0%20%uC758%uD574%20%uCC98%uB9AC%20%uB41C%20%uB4A4%uC5D0%uB294%20%uCEE4%uB110%uC774%20Aparapi%20UCores%20Java%20%uAE30%uBC18%20%uB77C%uC774%uBE0C%uB7EC%uB9AC%uC640%20%uD568%uAED8%20%uD45C%uC900%20Spark%20%uC791%uC5C5%uC790%uC5D0%uAC8C%20%uC804%uC1A1%uB429%uB2C8%uB2E4.%20%uC791%uC5C5%uC790%uB294%20Aparapi%20UCores%20Framework%20%5B17%5D%uB97C%20%uC0AC%uC6A9%uD558%uC5EC%20%uCEE4%uB110%uC744%20%uC2E4%uD589%uD569%uB2C8%uB2E4.%20Aparapi%20UCores%uB294%20Aparapi%20%uD504%uB808%uC784%20%uC6CC%uD06C%uC758%20%uD3EC%uD06C%uC785%uB2C8%uB2E4%20%5B18%5D.%20%uD45C%uC900%20Aparapi%20%uB77C%uC774%uBE0C%uB7EC%uB9AC%uB294%20%uC5EC%uB7EC%20OpenCL%20%uD658%uACBD%uACFC%20%uD070%20%uB370%uC774%uD130%20%uD504%uB808%uC784%20%uC6CC%uD06C%uC5D0%20%uC27D%uAC8C%20%uD1B5%uD569%20%uD560%20%uC218%20%uC788%uB3C4%uB85D%20%uBC14%uC774%uB108%uB9AC%20%uC2E4%uD589%20%uD750%uB984%20%28FPGA%uB97C%20%uC9C0%uC6D0%uD558%uACE0%20%uB2E4%uB978%20%uC7A5%uCE58%uB97C%20%uC120%uD0DD%uC801%uC73C%uB85C%20%uC9C0%uC6D0%uD574%uC57C%20%uD568%29%2C%20%uAC00%uC18D%uAE30%20%uC720%uD615%20%uBC0F%20%uD50C%uB7AB%uD3FC%20%uC120%uD0DD%20%uC9C0%uC6D0%uC744%20%uC9C0%uC6D0%uD558%uB3C4%uB85D%20%uD655%uC7A5%uB418%uC5C8%uC2B5%uB2C8%uB2E4.%0A%09%09%09.%20%uC704%uC758%20%uC608%uC81C%uC5D0%uC11C%20Spark%20Scheduling%uC758%20%uBAA9%uC801%uC744%20%uC704%uD574%20%uC791%uC5C5%uC790%uC5D0%uAC8C%20%uD558%uB098%uC758%20%uCF54%uC5B4%uB97C%20%uC0AC%uC6A9%uD558%uB3C4%uB85D%20%uC9C0%uC2DC%uD569%uB2C8%uB2E4.%20%uC774%uB807%uAC8C%uD558%uBA74%20%uAC00%uC18D%20%uC791%uC5C5%uC774%20%uC21C%uCC28%uC801%uC73C%uB85C%20%uC804%uC1A1%uB418%uBA70%20%uB3D9%uC77C%uD55C%20%uD558%uB4DC%uC6E8%uC5B4%20%uAC00%uC18D%20%uB9AC%uC18C%uC2A4%uC5D0%uC11C%20%uACBD%uC7C1%uD558%uC9C0%20%uC54A%uC2B5%uB2C8%uB2E4.%20SparkCL%uC5D0%uB294%20%uACBD%uD569%uC744%20%uB9C9%uC744%20%uC218%uC788%uB294%20%uC870%uD56D%uC774%20%uC788%uC9C0%uB9CC%uC774%20%uBC29%uBC95%uC740%20%uC7A0%uC7AC%uC801%20%uC778%20%uCDA9%uB3CC%uC744%20%uBC29%uC9C0%uD569%uB2C8%uB2E4.%0A%09%09*%20Implementation%uC774%20%uC788%uAD6C%uBA3C%0A%09%09%09*%203%uAC1C%uB85C%20%uACB0%uACFC%uB97C%20%uBCF4%uC5EC%uC8FC%uB098%20%uBCF4%uB2E4%0A%09%09*%20%uC544%uC9C1%20%uC720%uC544%uAE30%uC774%uB2E4.%0A%09%09%09*%20%uB354%20%uC27D%uAC8C%20%uB9CC%uB4E4%20%uC218%20%uC788%uAC8C%20%uD574%uBCF4%uB824%uACE0%20%uD55C%uB2E4%uACE0%20%uD55C%uB2E4.%0A%09*%20enough%20data%uAC00%20%uC874%uC7AC%20%uC548%20%uD558%uBA74%20%uC218%uB3D9%uC801%uC73C%uB85C%20%uAC00%uC18D%uAE30%uB97C%20%uC4F0%uAC8C%20%uD574%uC57C%20%uD55C%uB2E4.%0A%09