دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: برنامه نویسی: زبان های برنامه نویسی ویرایش: نویسندگان: Nazario Irizarry. Jr. سری: Mitre Technical Report (2013) ناشر: سال نشر: 2019 تعداد صفحات: 136 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 2 مگابایت
در صورت تبدیل فایل کتاب Mixing C and Java™ for High Performance Computing. به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب ترکیب C و Java™ برای محاسبات با کارایی بالا. نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
نرم افزار محاسبات عملکرد، به ویژه نرم افزار محاسبات تعبیه شده با کارایی بالا (HPEC)، معمولاً به زبان C برای پردازش و همچنین عملکرد زیرساخت توسعه داده می شود. زیرساخت شامل ارتباطات، تخصیص پردازنده/هسته، مدیریت کار، زمانبندی کار، تشخیص عیب، رسیدگی به خطا و گزارشگیری است. C و کتابخانه های زبان اسمبلر بهینه شده برای دستیابی به بالاترین عملکرد پردازش نسبت به محدودیت در اندازه، وزن و اتلاف توان استفاده می شوند. روندی برای دور شدن از منطق اختصاصی و پردازندههای قابل برنامهریزی تخصصی به پردازندههای مبتنی بر کالا وجود دارد. در نتیجه، اکنون امکان بررسی گزینه های نرم افزاری قوی تر وجود دارد. بسیاری از این توابع، به ویژه توابع زیرساخت، می توانند به سرعت و با خیال راحت با استفاده از چارچوب های Java™ پیاده سازی شوند، اما برخی تردید دارند که عملکرد آنها رضایت بخش باشد. فریمورک های جاوا باز گسترده هستند پشتیبانی منبع و فروشنده و استقلال پلتفرم جاوا نیاز به توسعه مجدد عملکردها را با تکامل سخت افزار و سیستم عامل کاهش می دهد. آزمایشها نشان میدهند که عملکرد Oracle® Java™ 7 Standard Edition (در پردازندههای اینتل) میتواند برای برخی مشکلات با C برابر باشد، اگر از ایجاد شی پویا به طور عاقلانه استفاده شود و برنامه بتواند زمان راهاندازی و گرم کردن مختصری را داشته باشد. جاوا می تواند کتابخانه های بومی را خیلی سریع فراخوانی کند. با برخی از فناوریهای پلسازی موجود، میتواند دادهها را به صورت بومی تخصیص دهد و حتی نظم جمعآوری زباله خود را به چنین دادههایی گسترش دهد. حتی با وجود اینکه مقداری سربار جاوا اضافی برای فراخوانی و استفاده از واحدهای پردازش گرافیکی وجود دارد، در آزمایشها توانست از واحد پردازش گرافیکی (GPU) با همان سرعت کد بومی C در زمانی که دادهها به صورت بومی تخصیص داده میشد، استفاده کند. چارچوبهای شبکه محاسباتی جاوا ویژگیهایی مانند کشف خودکار، شکست خودکار، همگامسازی دادههای بین گرهای، سریالسازی خودکار دادهها، صف کاری چند گره، نظارت بر بار فعال، متعادلسازی بار تطبیقی، و تغییر اندازه شبکه پویا را ارائه میدهند که میتواند به میزان قابل توجهی صرفهجویی کند. زمان توسعه دهنده در صورت نیاز به چنین ویژگی هایی. GridGain برای راه اندازی و استفاده آسان بود و گزینه های زیادی برای توزیع کار و مدیریت خرابی گره ها دارد. Akka و Storm نسبت به رابط ارسال پیام (MPI) جامعه با عملکرد بالا عملکرد خوبی داشتند، حتی اگر چنین مقایسه ای به دلیل تفاوت های قابل توجه بین ویژگی های چارچوب MPI و ویژگی های چارچوب جاوا ناعادلانه است. در یک خوشه اترنت 10 گیگابیتی، Akka و Storm به 10000 مبادله رفت و برگشت ناهمزمان در هر ثانیه دست یافتند که برای بسیاری از افراد بیش از اندازه کافی است. برنامه های کاربردی. اسکالا و پایتون نیز به طور مختصر مورد بررسی قرار گرفته اند تا نحوه عملکرد آنها نسبت به یکدیگر و نسبت به جاوا درک شود. Scala جدیدتر، مختصرتر و از نظر عملکرد با جاوا برابر است. پایتون قدیمیتر است، به خوبی کار نمیکند، اما دارای پشتیبانی گسترده از کتابخانه بومی و یک نحو مختصر است. برنامه های کاربردی جاوا/سی ترکیبی منطقی هستند و می توانند برای عملکرد خوب طراحی شوند. این دری را به روی برنامههای پیچیده با کارایی بالا باز میکند که در آن بهرهوری توسعهدهنده از طریق جاوا میتواند با سرعت محاسباتی نهایی قابل دستیابی با C و کتابخانههای سفارشی بومی معامله شود.
Performance computing software, especially high performance embedded computing (HPEC) software, is typically developed in C for processing as well as infrastructure functionality. Infrastructure includes communications, processor/core allocation, task management, job scheduling, fault detection, fault handling, and logging. C and optimized assembler language libraries are used to achieve the highest processing performance relative to limitations on size, weight, and power dissipation. There has been a trend to move away from dedicated logic and specialty programmable processors to commodity-based processors. As a result, it is now possible to examine more robust software options. Many of these functions, especially infrastructure functions, can be implemented quickly and safely utilizing Java™ frameworks but some doubt that the performance can be satisfactory. Java frameworks have extensive open source and vendor support, and Java’s platform independence reduces the need to redevelop functions as hardware and operating systems evolve. Tests show that the performance of Oracle® Java™ 7 Standard Edition (on Intel processors) can equal that of C for some problems if dynamic object creation is used judiciously and the application can afford a brief start-up and warm-up time. Java can invoke native libraries very quickly. With some of the available bridging technologies it can natively allocate data and even extend its garbage collection discipline to such data. Even though there is some additional Java overhead for invoking and utilizing graphics processing units, in tests it was able to utilize the graphical processing unit (GPU) at the same rate as native C code when the data was allocated natively. Java compute-grid frameworks offer features such as auto-discovery, auto-failover, inter-node data synchronization, automatic data serialization, multi-node work queuing, active load monitoring, adaptive load balancing, and, dynamic grid resizing that can save significant developer time if such features are needed. GridGain was easy to setup and use and has many options for work distribution and handling node failures. Akka and Storm, performed well relative to the high-performance community’s Message Passing Interface (MPI) even though such a comparison is unfair due to the significant differences between MPI framework features and the Java framework features. On a 10 gigabit Ethernet cluster, Akka and Storm achieved 10,000 asynchronous round-trip exchanges per second, which is more than adequate for many applications. Scala and Python also are investigated briefly to understand how they perform relative to each other and relative to Java. Scala is newer, more concise, and equal in performance to Java. Python is older, does not perform as well, but has extensive native library support and a concise syntax. Hybrid Java/C applications make sense and can be designed to perform well. This opens the door to intricate high performance applications in which developer productivity via Java can be traded against the ultimate compute speed attainable with C and native customized libraries.