GPUBlocks: GUI Programming Tool for CUDA and OpenCL
Recent advances in general-purpose graphics processing units (GPGPUs) have resulted in massively parallel hardware that is widely available to achieve high performance in desktop, notebook, and even mobile computer systems. While multicore technology has become the norm of modern computers, programm...
Saved in:
| Published in: | Journal of signal processing systems Vol. 91; no. 3-4; pp. 235 - 245 |
|---|---|
| Main Authors: | , , , |
| Format: | Journal Article |
| Language: | English |
| Published: |
New York
Springer US
01.03.2019
Springer Nature B.V |
| Subjects: | |
| ISSN: | 1939-8018, 1939-8115 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | Recent advances in general-purpose graphics processing units (GPGPUs) have resulted in massively parallel hardware that is widely available to achieve high performance in desktop, notebook, and even mobile computer systems. While multicore technology has become the norm of modern computers, programming such systems requires the understanding of underlying hardware architecture and hence posts a great challenge for average programmers, who might be professionals in specific domains, but not experts in parallel programming. This paper presents a GUI tool called
GPUBlocks
that can facilitate parallel programming on multicore computer systems. GPUBlocks is developed based on the OpenBlocks framework, an extendable tool for graphical programming, to construct the GUI-based programming environment for CUDA and OpenCL parallel computing platforms. Programmers simply need to drag-n-drop blocks, fill the fields of the blocks, and connect them according to array or matrix computations that are specified by algorithms. GPUBlocks can then translate block-based code to CUDA or OpenCL programs. Furthermore, a couple of optimization constructs have also been offered for rapid program optimization. Experimental results have shown that the generated CUDA and OpenCL programs can achieve reasonable speedups on GPUs. Consequently, GPUBlocks can be used as a tool for fast prototyping of GPU applications or a platform for educational parallel programming. |
|---|---|
| AbstractList | Recent advances in general-purpose graphics processing units (GPGPUs) have resulted in massively parallel hardware that is widely available to achieve high performance in desktop, notebook, and even mobile computer systems. While multicore technology has become the norm of modern computers, programming such systems requires the understanding of underlying hardware architecture and hence posts a great challenge for average programmers, who might be professionals in specific domains, but not experts in parallel programming. This paper presents a GUI tool called GPUBlocks that can facilitate parallel programming on multicore computer systems. GPUBlocks is developed based on the OpenBlocks framework, an extendable tool for graphical programming, to construct the GUI-based programming environment for CUDA and OpenCL parallel computing platforms. Programmers simply need to drag-n-drop blocks, fill the fields of the blocks, and connect them according to array or matrix computations that are specified by algorithms. GPUBlocks can then translate block-based code to CUDA or OpenCL programs. Furthermore, a couple of optimization constructs have also been offered for rapid program optimization. Experimental results have shown that the generated CUDA and OpenCL programs can achieve reasonable speedups on GPUs. Consequently, GPUBlocks can be used as a tool for fast prototyping of GPU applications or a platform for educational parallel programming. Recent advances in general-purpose graphics processing units (GPGPUs) have resulted in massively parallel hardware that is widely available to achieve high performance in desktop, notebook, and even mobile computer systems. While multicore technology has become the norm of modern computers, programming such systems requires the understanding of underlying hardware architecture and hence posts a great challenge for average programmers, who might be professionals in specific domains, but not experts in parallel programming. This paper presents a GUI tool called GPUBlocks that can facilitate parallel programming on multicore computer systems. GPUBlocks is developed based on the OpenBlocks framework, an extendable tool for graphical programming, to construct the GUI-based programming environment for CUDA and OpenCL parallel computing platforms. Programmers simply need to drag-n-drop blocks, fill the fields of the blocks, and connect them according to array or matrix computations that are specified by algorithms. GPUBlocks can then translate block-based code to CUDA or OpenCL programs. Furthermore, a couple of optimization constructs have also been offered for rapid program optimization. Experimental results have shown that the generated CUDA and OpenCL programs can achieve reasonable speedups on GPUs. Consequently, GPUBlocks can be used as a tool for fast prototyping of GPU applications or a platform for educational parallel programming. |
| Author | Pai, Shen-Hung Lin, Hsih-Hsin Tu, Chia-Heng Hwang, Yuan-Shin |
| Author_xml | – sequence: 1 givenname: Yuan-Shin orcidid: 0000-0002-1348-082X surname: Hwang fullname: Hwang, Yuan-Shin email: shin@csie.ntust.edu.tw organization: Department of Computer Science and Information Engineering, National Taiwan University of Science and Technology – sequence: 2 givenname: Hsih-Hsin surname: Lin fullname: Lin, Hsih-Hsin organization: Department of Computer Science and Information Engineering, National Taiwan University of Science and Technology – sequence: 3 givenname: Shen-Hung surname: Pai fullname: Pai, Shen-Hung organization: Department of Computer Science and Information Engineering, National Taiwan University of Science and Technology – sequence: 4 givenname: Chia-Heng surname: Tu fullname: Tu, Chia-Heng organization: Department of Computer Science and Information Engineering, National Cheng Kung University |
| BookMark | eNp9kDFPwzAQhS1UJNrCD2CzxBzw2UmcsJVQSqVK7dDMlhPbVUpqFzsd-PekCggJCaY76d537-5N0Mg6qxG6BXIPhPCHAEDTJCKQRcDyJKIXaAw5y6MMIBl99_34Ck1C2BOSEp7AGLHFpnxqXf0WHvGiXOKNdzsvD4fG7vDWuRYb53FRPs-wtAqvj9oWq2t0aWQb9M1XnaLyZb4tXqPVerEsZquoZpB2UcaJAc01xDqugBMuU5NySQ1QWWUpZSpmNFGKVVUuUyqVlEYxybmKDWO1YlN0N-w9evd-0qETe3fytrcUFLIECE0o71UwqGrvQvDaiKNvDtJ_CCDinI0YshH98-KcjaA9w38xddPJrnG287Jp_yXpQIbexe60_7npb-gTR9B3hg |
| CitedBy_id | crossref_primary_10_1109_ACCESS_2022_3175316 crossref_primary_10_1007_s11227_021_03631_9 crossref_primary_10_1007_s11265_018_1431_2 |
| Cites_doi | 10.1109/ICPPW.2015.15 |
| ContentType | Journal Article |
| Copyright | Springer Science+Business Media, LLC, part of Springer Nature 2018 Copyright Springer Nature B.V. 2019 |
| Copyright_xml | – notice: Springer Science+Business Media, LLC, part of Springer Nature 2018 – notice: Copyright Springer Nature B.V. 2019 |
| DBID | AAYXX CITATION JQ2 |
| DOI | 10.1007/s11265-018-1395-2 |
| DatabaseTitle | CrossRef ProQuest Computer Science Collection |
| DatabaseTitleList | ProQuest Computer Science Collection |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Engineering |
| EISSN | 1939-8115 |
| EndPage | 245 |
| ExternalDocumentID | 10_1007_s11265_018_1395_2 |
| GrantInformation_xml | – fundername: Ministry of Science and Technology, Taiwan grantid: 105-2622-8-002 -002 funderid: https://doi.org/10.13039/501100004663 – fundername: Ministry of Science and Technology, Taiwan grantid: 105-2221-E-011 -069 -MY3 funderid: https://doi.org/10.13039/501100004663 |
| GroupedDBID | -5B -5G -BR -EM -Y2 -~C .86 .VR 06D 0R~ 0VY 1N0 203 29L 29~ 2J2 2JN 2JY 2KG 2LR 2VQ 2~H 30V 4.4 406 408 409 40D 40E 5GY 5VS 67Z 6NX 8TC 8UJ 95- 95. 95~ 96X AAAVM AABHQ AACDK AAHNG AAIAL AAJBT AAJKR AANZL AARHV AARTL AASML AATNV AATVU AAUYE AAWCG AAYIU AAYQN AAYTO AAYZH ABAKF ABBBX ABBXA ABDZT ABECU ABFTV ABHLI ABHQN ABJNI ABJOX ABKCH ABKTR ABMNI ABMQK ABNWP ABQBU ABSXP ABTEG ABTHY ABTKH ABTMW ABULA ABWNU ABXPI ACAOD ACBXY ACDTI ACGFO ACGFS ACHSB ACHXU ACKNC ACMDZ ACMLO ACOKC ACOMO ACPIV ACREN ACZOJ ADHIR ADINQ ADKNI ADKPE ADRFC ADTPH ADURQ ADYFF ADYOE ADZKW AEBTG AEFQL AEGAL AEGNC AEJHL AEJRE AEKMD AEMSY AENEX AEOHA AEPYU AESKC AETLH AEVLU AEXYK AFEXP AFGCZ AFLOW AFQWF AFWTZ AFYQB AFZKB AGAYW AGDGC AGJBK AGMZJ AGQEE AGQMX AGRTI AGWIL AGWZB AGYKE AHAVH AHBYD AHKAY AHSBF AHYZX AIAKS AIGIU AIIXL AILAN AITGF AJBLW AJRNO AJZVZ ALMA_UNASSIGNED_HOLDINGS ALWAN AMKLP AMTXH AMXSW AMYLF AOCGG ARCEE ARMRJ ASPBG AVWKF AXYYD AYJHY AZFZN B-. BDATZ BGNMA BSONS CAG COF CS3 CSCUP DDRTE DNIVK DPUIP DU5 EBLON EBS EIOEI EJD ESBYG F5P FEDTE FERAY FFXSO FIGPU FINBP FNLPD FRRFC FSGXE FWDCC GGCAI GGRSB GJIRD GNWQR GQ6 GQ7 GQ8 H13 HF~ HG5 HG6 HLICF HMJXF HQYDN HRMNR HVGLF HZ~ IJ- IKXTQ ITM IWAJR IXC IZIGR I~X I~Z J-C J0Z JBSCW JCJTX JZLTJ KOV LAK LLZTM M4Y MA- N9A NPVJJ NQJWS NU0 O93 O9G O9J OAM P9P PF0 PT4 QOS R89 R9I ROL RPX RSV S16 S1Z S27 S3B SAP SCLPG SDH SEG SHX SISQX SJYHP SNE SNPRN SNX SOHCF SOJ SPISZ SRMVM SSLCW STPWE SZN T13 TSG TSK TSV TUC U2A UG4 UOJIU UTJUX UZXMN VC2 VFIZW W23 W48 WK8 YLTOR Z45 Z7R Z7V Z7X Z7Z Z83 Z88 Z8M Z8N Z8P Z8T Z8W Z92 ZMTXR ~A9 AAPKM AAYXX ABBRH ABDBE ABFSG ABJCF ABQSL ABRTQ ACSTC ADHKG AEZWR AFDZB AFFHD AFHIU AFKRA AFOHR AHPBZ AHWEU AIXLP ARAPS ATHPR AYFIA BENPR BGLVJ CCPQU CITATION HCIFZ K7- M7S PHGZM PHGZT PQGLB PTHSS JQ2 |
| ID | FETCH-LOGICAL-c316t-870f1e7e14e4b1707a6f67a2f12ab8623d4325dd3bb9a62adaafd3a77d4f33cd3 |
| IEDL.DBID | RSV |
| ISICitedReferencesCount | 4 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000459428200003&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 1939-8018 |
| IngestDate | Wed Sep 17 23:58:45 EDT 2025 Sat Nov 29 01:43:35 EST 2025 Tue Nov 18 22:25:36 EST 2025 Fri Feb 21 02:35:10 EST 2025 |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 3-4 |
| Keywords | CUDA Programming tool GUI OpenCL Heterogeneous computing GPGPU |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-c316t-870f1e7e14e4b1707a6f67a2f12ab8623d4325dd3bb9a62adaafd3a77d4f33cd3 |
| Notes | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 14 |
| ORCID | 0000-0002-1348-082X |
| PQID | 2185102527 |
| PQPubID | 2044217 |
| PageCount | 11 |
| ParticipantIDs | proquest_journals_2185102527 crossref_primary_10_1007_s11265_018_1395_2 crossref_citationtrail_10_1007_s11265_018_1395_2 springer_journals_10_1007_s11265_018_1395_2 |
| PublicationCentury | 2000 |
| PublicationDate | 2019-03-01 |
| PublicationDateYYYYMMDD | 2019-03-01 |
| PublicationDate_xml | – month: 03 year: 2019 text: 2019-03-01 day: 01 |
| PublicationDecade | 2010 |
| PublicationPlace | New York |
| PublicationPlace_xml | – name: New York – name: Heidelberg |
| PublicationSubtitle | for Signal, Image, and Video Technology (formerly the Journal of VLSI Signal Processing Systems for Signal, Image, and Video Technology) |
| PublicationTitle | Journal of signal processing systems |
| PublicationTitleAbbrev | J Sign Process Syst |
| PublicationYear | 2019 |
| Publisher | Springer US Springer Nature B.V |
| Publisher_xml | – name: Springer US – name: Springer Nature B.V |
| References | Banzi, M. (2008). Getting started with arduino. Make Books - Imprint of: O’Reilly Media. Khronos Group. The OpenMP API specification for parallel programming http://openmp.org/wp/. MIT. MIT App Inventor: A blocks-based programming tool for developing apps for android devices http://appinventor.mit.edu/explore/. MIT. Starlogo TNG: The next generation of starlogo modeling and simulation software http://education.mit.edu/projects/starlogo-tng. Lin, H.-H., Tu, C.-H., Hwang, Y.-S. (2015). CUDABlock: A GUI programming tool for CUDA. In 2015 International Workshop on Embedded Multicore Systems, 44th International Conference on Parallel Processing Workshops, ICPPW, 2015 (pp. 37–42). Google. Blockly. https://developers.google.com/blockly/. ArduBlock. ArduBlock: A Graphical Programming Language for Arduino. http://blog.ardublock.com. Scratch for Developers. Scratch Blocks https://scratch.mit.edu/developers. MIT. Scratch: A free desktop and online multimedia authoring tool https://scratch.mit.edu/. OpenVX. OpenVX: Protable, power-efficient vision processing https://www.khronos.org/openvx/. NetLogo. Netlogo: a multi-agent programmable modeling environment http://ccl.northwestern.edu/netlogo/. Hopscotch. Hopscotch: A programming tool for developing apps for ios devices https://www.gethopscotch.com/. NVIDIA. CUDA: A parallel computing platform and programming model http://www.nvidia.com/object/cuda_home_new.html. Khronos Group. OpenCL: The open standard for parallel programming of heterogeneous systems https://www.khronos.org/opencl/. KlopferEOpenBlocks: An extendable framework for graphical block programming systems2007CambridgePhD thesis, Dept. of Electrical Engineering and Computer Science, Massachusetts Institute of Technology OpenMPI. Open MPI: Open source high performance computing http://www.open-mpi.org/. E Klopfer (1395_CR7) 2007 1395_CR10 1395_CR2 1395_CR14 1395_CR3 1395_CR13 1395_CR12 1395_CR1 1395_CR11 1395_CR6 1395_CR4 1395_CR16 1395_CR5 1395_CR15 1395_CR8 1395_CR9 |
| References_xml | – reference: MIT. MIT App Inventor: A blocks-based programming tool for developing apps for android devices http://appinventor.mit.edu/explore/. – reference: MIT. Starlogo TNG: The next generation of starlogo modeling and simulation software http://education.mit.edu/projects/starlogo-tng. – reference: NetLogo. Netlogo: a multi-agent programmable modeling environment http://ccl.northwestern.edu/netlogo/. – reference: Google. Blockly. https://developers.google.com/blockly/. – reference: OpenVX. OpenVX: Protable, power-efficient vision processing https://www.khronos.org/openvx/. – reference: Hopscotch. Hopscotch: A programming tool for developing apps for ios devices https://www.gethopscotch.com/. – reference: MIT. Scratch: A free desktop and online multimedia authoring tool https://scratch.mit.edu/. – reference: Scratch for Developers. Scratch Blocks https://scratch.mit.edu/developers. – reference: Khronos Group. The OpenMP API specification for parallel programming http://openmp.org/wp/. – reference: KlopferEOpenBlocks: An extendable framework for graphical block programming systems2007CambridgePhD thesis, Dept. of Electrical Engineering and Computer Science, Massachusetts Institute of Technology – reference: Lin, H.-H., Tu, C.-H., Hwang, Y.-S. (2015). CUDABlock: A GUI programming tool for CUDA. In 2015 International Workshop on Embedded Multicore Systems, 44th International Conference on Parallel Processing Workshops, ICPPW, 2015 (pp. 37–42). – reference: ArduBlock. ArduBlock: A Graphical Programming Language for Arduino. http://blog.ardublock.com. – reference: OpenMPI. Open MPI: Open source high performance computing http://www.open-mpi.org/. – reference: NVIDIA. CUDA: A parallel computing platform and programming model http://www.nvidia.com/object/cuda_home_new.html. – reference: Banzi, M. (2008). Getting started with arduino. Make Books - Imprint of: O’Reilly Media. – reference: Khronos Group. OpenCL: The open standard for parallel programming of heterogeneous systems https://www.khronos.org/opencl/. – ident: 1395_CR1 – ident: 1395_CR13 – ident: 1395_CR14 – ident: 1395_CR4 – ident: 1395_CR16 – ident: 1395_CR15 – ident: 1395_CR5 – ident: 1395_CR12 – ident: 1395_CR2 – ident: 1395_CR3 – ident: 1395_CR10 – ident: 1395_CR11 – ident: 1395_CR8 doi: 10.1109/ICPPW.2015.15 – ident: 1395_CR6 – ident: 1395_CR9 – volume-title: OpenBlocks: An extendable framework for graphical block programming systems year: 2007 ident: 1395_CR7 |
| SSID | ssj0060751 |
| Score | 2.1854918 |
| Snippet | Recent advances in general-purpose graphics processing units (GPGPUs) have resulted in massively parallel hardware that is widely available to achieve high... |
| SourceID | proquest crossref springer |
| SourceType | Aggregation Database Enrichment Source Index Database Publisher |
| StartPage | 235 |
| SubjectTerms | Algorithms Circuits and Systems Computer Imaging Domains Electrical Engineering Engineering Graphical user interface Graphics processing units Handheld computers Hardware Image Processing and Computer Vision Mobile computing Optimization Parallel programming Pattern Recognition Pattern Recognition and Graphics Programmers Programming environments Prototyping Signal,Image and Speech Processing Vision |
| Title | GPUBlocks: GUI Programming Tool for CUDA and OpenCL |
| URI | https://link.springer.com/article/10.1007/s11265-018-1395-2 https://www.proquest.com/docview/2185102527 |
| Volume | 91 |
| WOSCitedRecordID | wos000459428200003&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVAVX databaseName: SpringerLink Contemporary (1997 - Present) customDbUrl: eissn: 1939-8115 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0060751 issn: 1939-8018 databaseCode: RSV dateStart: 20080101 isFulltext: true titleUrlDefault: https://link.springer.com/search?facet-content-type=%22Journal%22 providerName: Springer Nature |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV3dS8MwEA8yfdAHv8XplDz4pBSWpG0a3-Z0Uxhj6Cp7K0mTgjg7Wad_v5d-WBUV9DmXNFzS3_2Ou9whdAJWVVBt3RItlOOCkCN5oJ0AuK4k2nBi8ur6Az4cBpOJGJXvuLMq270KSeZIXT92I9S3iWbg9TDhOYC7y_ChwPZruL27r-DXBxtIilCysPAbVKHM75b4bIxqhvklKJrbmt7Gv3a5idZLaok7xV3YQksm3UZrHwoO7iDWH4UXYL4es3PcD2_wqMjOeoJBPJ7NphgoLO6Glx0sU41tskl3sIvC3tW4e-2UbROcmBF_AfjWTojhhrjGVYS3ufQTn0uaECoVODBMu4x6WjOlhPSp1FImmknOtZswFmu2hxrpLDX7CIPrnCTAAqTLpeupWDLhe4oDSihDaGKaqF3pL4rLmuK2tcU0qqshW31EoI_I6iOiTXT6PuW5KKjxm3CrOpSo_LeyCEgJAAn1KG-is-oQ6uEfFzv4k_QhWgVuJIp0sxZqLOYv5gitxK-Lh2x-nF-5NwIfzIs |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1bS8MwFA4yBfXBuzidmgeflMKStE3r25zugnUMXWVvJW0SEGcn6_T3e3qzKiroc05DOUm-7zuckxOEToBVXSrTsES6oWGCkSG4Iw0HtK4gUnGisu76Hh8MnPHYHRb3uJOy2r1MSWZIXV12I9ROC80g6mGuZQDuLppAWGnD_Nu7-xJ-beBAkqeS3RR-nTKV-d0Un8moUphfkqIZ13TW__WXG2itkJa4le-FTbSg4i20-qHh4DZi3aF_AfT1mJzjrt_Hw7w66wkG8Wg6nWCQsLjtX7awiCVOi03a3g7yO1ejds8onk0wIkbsOeBbUxPFFTGVGRLe5MLWNhdUEypCCGCYNBm1pGRh6AqbCimElkxwLk3NWCTZLqrF01jtIQyhs9agAoTJhWmFkWCubYUcUCJUhGpVR83Sf0FU9BRPn7aYBFU35NQfAfgjSP0R0Do6ff_kOW-o8Ztxo1yUoDhbSQCiBICEWpTX0Vm5CNXwj5Pt_8n6GC33Rjde4PUH1wdoBXSSm5eeNVBtPntRh2gpep0_JLOjbPu9AaItz28 |
| linkToPdf | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV3fS8MwEA6iIvrgb3E6NQ8-KWXLjzarb3NzczjGwE32VtImAXF2Y63-_V7W1qmoID4nDeWS3H3HffkOoXOIqj5VNi1RfuhwmORIUVNODbCuJEoLoufq-l3R69VGI7-f9zlNCrZ7UZLM3jRYlaY4rUyVqSwevhHqWdIZZEDMdx3wwSvc8uhtun7_ULhiD-IhycrKvnXFtaKs-d0SnwPTAm1-KZDO405r699_vI02c8iJ69kZ2UFLOt5FGx-ECPcQa_eH1xDWnpIr3B52cD9jbT3DIB5MJmMM0BY3hs06lrHCloTS6O6jYetm0Lh18nYKTsSIl4LfqxqihSZc85CIqpCe8YSkhlAZQmLDFGfUVYqFoS89KpWURjEphOKGsUixA7QcT2J9iDCk1MYAOpBcSO6GkWS-54YCvEeoCTW6hKqFLYMo1xq3LS_GwUIl2dojAHsE1h4BLaGL90-mmdDGb5PLxQYF-Z1LAgAr4GCoS0UJXRYbshj-cbGjP80-Q2v9Zivodnp3x2gd4JOfMdLKaDmdvegTtBq9po_J7HR-Et8ApuLYUw |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=GPUBlocks%3A+GUI+Programming+Tool+for+CUDA+and+OpenCL&rft.jtitle=Journal+of+signal+processing+systems&rft.au=Hwang%2C+Yuan-Shin&rft.au=Lin%2C+Hsih-Hsin&rft.au=Pai%2C+Shen-Hung&rft.au=Tu%2C+Chia-Heng&rft.date=2019-03-01&rft.issn=1939-8018&rft.eissn=1939-8115&rft.volume=91&rft.issue=3-4&rft.spage=235&rft.epage=245&rft_id=info:doi/10.1007%2Fs11265-018-1395-2&rft.externalDBID=n%2Fa&rft.externalDocID=10_1007_s11265_018_1395_2 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=1939-8018&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=1939-8018&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=1939-8018&client=summon |