Powered by OpenAIRE graph
Found an issue? Give us feedback
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/ YÖK Açık Bilim - CoH...arrow_drop_down
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/
versions View all 2 versions
addClaim

PARAFAC-SPARK: Parallel tensor decompositions on spark

Authors: Bekçe, Selim Eren;

PARAFAC-SPARK: Parallel tensor decompositions on spark

Abstract

Tensörler veri bilimi uygulamalarında ve bilimsel çalışmalarda sıkça kullanılmakta olan çok boyutlu matrislere verilen isimdir. Paralel Faktör Analizi (PARAFAC) adıyla bilinen ayrışım şekli, yaygın olarak kullanılan alternatif kökler (ALS) tensör ayrıştırma algoritması sayesinde veri üzerindeki örtük özellikler ve faktör matrisleri ortaya çıkarabilmektedir. Günümüzde gelişmiş teknolojiler ve büyük veri biliminin yaygınlaşmasıyla birlikte ortaya çıkan tensörler milyarlarca satır veri içerebilmektedir. Bu algoritmanın basit bir uygulaması çok büyük boyutlarda ara matris ve veri iletişimi gerektirdiğinden, paralel sistemlerde etkin bir biçimde uygulanabilmesi, büyük veri biliminin gelişimi için önem kazanmaktadır. PARAFAC-ALS'in paylaşımlı veya dağıtık bellekli sistemlerde uygulamaları mevcuttur fakat bu sistemler maliyetli sistem yatırımları ve düşük seviye kodlama gerektirir, çağdaş programlama araçlarıyla uyumsuzdur ve olağan sistem ve altyapı arızalarına dayanıklı da değillerdir. Apache Spark önbellek destekli çağdaş ve dağıtık bir programlama platformudur ve Apache Hadoop ekosistemi ile birlikte birçok şirket ve veri bilimcisi tarafından uyumlu, ekonomik ve hataya dayanıklı olmaları sebebiyle tercih edilmektedir. Spark üzerinde Scala diliyle geliştirdiğimiz paralel PARAFAC-SPARK uygulaması, üç boyutlu tensörleri düşük bellek tüketimiyle ayrıştırabilmektedir. İşlem sırasında tensörler daha hızlı ve dağıtık şekilde işlenebilmeleri için sıkıştırılmış seyrek satırlar (CSR) formatına dönüştürülür ve tensör küp şeklinde parçalara ayırılıp dağıtılarak işlenir. Bu çalışmada, önceki dağıtık bellek ve Hadoop uygulamalarındaki algoritmik ve yöntemsel geliştirmeler derlenip en uygun şekilde Spark için yeniden uyarlanmıştır. Ayrıca, ana Matrisleştirilmiş Tensör ile Khatri-Rao Çarpımı (MTTKRP) operasyonu sırasında çok boyutlu dinamik paylaştırma tekniği uygulanmış, bu sayede MTTKRP operasyonunun bellek tüketiminde dinamik paylaştırma katsayısı oranında azalma ve operasyonun son indirgeme aşamasında da işlemci kapasite kullanım oranında artma sağlanmıştır. PARAFAC-SPARK uygulamasını 11 gerçek veri içeren tensör ve ölçeklenebilirliği test etmek adına sentetik olarak üretilmiş tensörler için çalıştırdık. En ileri varyasyonumuzun (PS-CSRSX), temel Spark varyasyonuna (PS-COO) göre % 67'e kadar daha hızlı olduğunu ve en ileri Hadoop uygulamalarına göre 10 kata kadar daha hızlı olduğunu gördük.

Tensors are higher order matrices, widely used in many data science applications and scientific disciplines. The Canonical Polyadic Decomposition (also known as CPD/PARAFAC) is a widely adopted tensor factorization to discover and extract latent features of tensors usually applied via alternating squares (ALS) method. Developing efficient parallelization methods of PARAFAC on commodity clusters is important because as common tensor sizes reach billions of nonzeros, a naive implementation would require infeasibly huge intermediate memory sizes. Implementations of PARAFAC-ALS on shared and distributed-memory systems are available, but these systems require expensive cluster setups, are too low level, not compatible with modern tooling and not fault tolerant by design. Many companies and data science communities widely prefer Apache Spark, a modern distributed computing framework with in-memory caching, and Hadoop ecosystem of tools for their ease of use, compatibility, ability to run on commodity hardware and fault tolerance. We developed PARAFAC-SPARK, an efficient, parallel, open-source implementation of PARAFAC on Spark, written in Scala. It can decompose 3D tensors stored in common coordinate format in parallel with low memory footprint by partitioning them as grids and utilizing compressed sparse rows (CSR) format for efficient traversals. We followed and combined many of the algorithmic and methodological improvements of its predecessor implementations on Hadoop and distributed memory, and adapted them for Spark. During the kernel MTTKRP operation, by applying a multi-way dynamic partitioning scheme, we were also able to increase the number of reducers to be on par with the number of cores to achieve better utilization and reduced memory footprint. We ran PARAFAC-SPARK with some real world tensors and evaluated the effectiveness of each improvement as a series of variants compared with each other, as well as with some synthetically generated tensors up to billions of rows to measure its scalability. Our fastest variant (PS-CSRSX) is up to 67% faster than our baseline Spark implementation (PS-COO) and up to 10 times faster than the state of art Hadoop implementations.

75

Country
Turkey
Related Organizations
Keywords

Computer programs, Singular value decomposition method, Alternating squares, PARAFAC-ALS, Computer programming, Data science, Big data, Factorization, Grid, Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Spark, Decomposition, Parafac, Cartesian tensors, CPD-ALS, Repartition, Singular value decomposition, Distributed programming, CPD, Computer Engineering and Computer Science and Control, 004, Tensor, Hadoop, ALS, Partitioning

  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    0
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
Powered by OpenAIRE graph
Found an issue? Give us feedback
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
0
Average
Average
Average
Green