{"id":1058097,"date":"2024-07-17T15:12:21","date_gmt":"2024-07-17T22:12:21","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-research-item&#038;p=1058097"},"modified":"2024-07-18T14:38:11","modified_gmt":"2024-07-18T21:38:11","slug":"mosaic-harnessing-micro-architectural-resources-of-servers-in-serverless-environments","status":"publish","type":"msr-research-item","link":"https:\/\/www.microsoft.com\/en-us\/research\/publication\/mosaic-harnessing-micro-architectural-resources-of-servers-in-serverless-environments\/","title":{"rendered":"Mosaic: Harnessing Micro-architectural Resources of Servers in Serverless Environments"},"content":{"rendered":"<p><span dir=\"ltr\" role=\"presentation\">With serverless computing, users develop scalable <\/span><span dir=\"ltr\" role=\"presentation\">applications using lightweight functions as building blocks, while <\/span><span dir=\"ltr\" role=\"presentation\">cloud<\/span> <span dir=\"ltr\" role=\"presentation\">providers<\/span> <span dir=\"ltr\" role=\"presentation\">own<\/span> <span dir=\"ltr\" role=\"presentation\">most<\/span> <span dir=\"ltr\" role=\"presentation\">of<\/span> <span dir=\"ltr\" role=\"presentation\">the<\/span> <span dir=\"ltr\" role=\"presentation\">stack,<\/span> <span dir=\"ltr\" role=\"presentation\">allowing<\/span> <span dir=\"ltr\" role=\"presentation\">for<\/span> <span dir=\"ltr\" role=\"presentation\">better <\/span><span dir=\"ltr\" role=\"presentation\">resource optimizations. However, due to the frequent context <\/span><span dir=\"ltr\" role=\"presentation\">switches<\/span> <span dir=\"ltr\" role=\"presentation\">within<\/span> <span dir=\"ltr\" role=\"presentation\">function<\/span> <span dir=\"ltr\" role=\"presentation\">invocations<\/span> <span dir=\"ltr\" role=\"presentation\">and<\/span> <span dir=\"ltr\" role=\"presentation\">a<\/span> <span dir=\"ltr\" role=\"presentation\">high<\/span> <span dir=\"ltr\" role=\"presentation\">degree<\/span> <span dir=\"ltr\" role=\"presentation\">of <\/span><span dir=\"ltr\" role=\"presentation\">core<\/span> <span dir=\"ltr\" role=\"presentation\">oversubscription,<\/span> <span dir=\"ltr\" role=\"presentation\">functions<\/span> <span dir=\"ltr\" role=\"presentation\">frequently<\/span> <span dir=\"ltr\" role=\"presentation\">lose<\/span> <span dir=\"ltr\" role=\"presentation\">their<\/span> <span dir=\"ltr\" role=\"presentation\">micro<\/span><span dir=\"ltr\" role=\"presentation\">architectural state causing a performance degradation. At the <\/span><span dir=\"ltr\" role=\"presentation\">same time, hardware structures in modern cores are dimensioned<\/span><br role=\"presentation\" \/><span dir=\"ltr\" role=\"presentation\">for the broader computational needs of applications, rendering <\/span><span dir=\"ltr\" role=\"presentation\">them oversized for many serverless functions.<\/span><\/p>\n<p><span dir=\"ltr\" role=\"presentation\">Based on these insights, we propose Mosaic, a hardware-<\/span><span dir=\"ltr\" role=\"presentation\">software<\/span> <span dir=\"ltr\" role=\"presentation\">co-design<\/span> <span dir=\"ltr\" role=\"presentation\">composed<\/span> <span dir=\"ltr\" role=\"presentation\">of<\/span> <span dir=\"ltr\" role=\"presentation\">(1)<\/span> <span dir=\"ltr\" role=\"presentation\">MosaicCPU<\/span><span dir=\"ltr\" role=\"presentation\">,<\/span> <span dir=\"ltr\" role=\"presentation\">a<\/span> <span dir=\"ltr\" role=\"presentation\">processor <\/span><span dir=\"ltr\" role=\"presentation\">architecture that can efficiently run both serverless workloads <\/span><span dir=\"ltr\" role=\"presentation\">and traditional monolithic applications, and (2)<\/span> <span dir=\"ltr\" role=\"presentation\">MosaicScheduler<\/span><span dir=\"ltr\" role=\"presentation\">, <\/span><span dir=\"ltr\" role=\"presentation\">a<\/span> <span dir=\"ltr\" role=\"presentation\">serverless<\/span> <span dir=\"ltr\" role=\"presentation\">software<\/span> <span dir=\"ltr\" role=\"presentation\">stack<\/span> <span dir=\"ltr\" role=\"presentation\">that<\/span> <span dir=\"ltr\" role=\"presentation\">maximizes<\/span> <span dir=\"ltr\" role=\"presentation\">the<\/span> <span dir=\"ltr\" role=\"presentation\">architecture <\/span><span dir=\"ltr\" role=\"presentation\">benefits.<\/span> <span dir=\"ltr\" role=\"presentation\">MosaicCPU<\/span> <span dir=\"ltr\" role=\"presentation\">slices<\/span> <span dir=\"ltr\" role=\"presentation\">the<\/span> <span dir=\"ltr\" role=\"presentation\">oversized<\/span> <span dir=\"ltr\" role=\"presentation\">micro-architectural <\/span><span dir=\"ltr\" role=\"presentation\">resources into smaller chunks and dedicates tiles of such chunks <\/span><span dir=\"ltr\" role=\"presentation\">to functions. The processor maintains the function\u2019s state across <\/span><span dir=\"ltr\" role=\"presentation\">context switches and concurrently for multiple functions across <\/span><span dir=\"ltr\" role=\"presentation\">different<\/span> <span dir=\"ltr\" role=\"presentation\">tiles,<\/span> <span dir=\"ltr\" role=\"presentation\">improving<\/span> <span dir=\"ltr\" role=\"presentation\">their<\/span> <span dir=\"ltr\" role=\"presentation\">performance.<\/span> <span dir=\"ltr\" role=\"presentation\">Furthermore,<\/span> <span dir=\"ltr\" role=\"presentation\">it <\/span><span dir=\"ltr\" role=\"presentation\">operates the currently inactive tiles in low-power mode, thereby <\/span><span dir=\"ltr\" role=\"presentation\">reducing energy consumption. To maximize efficiency, Mosaic<\/span><span dir=\"ltr\" role=\"presentation\">Scheduler introduces predictive right-sizing of the per-function <\/span><span dir=\"ltr\" role=\"presentation\">tiles alongside smart scheduling based on the status of the tile <\/span><span dir=\"ltr\" role=\"presentation\">contexts. Mosaic improves the throughput by 225% while using <\/span><span dir=\"ltr\" role=\"presentation\">22% less power than the conventional server-class processors.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>With serverless computing, users develop scalable applications using lightweight functions as building blocks, while cloud providers own most of the stack, allowing for better resource optimizations. However, due to the frequent context switches within function invocations and a high degree of core oversubscription, functions frequently lose their microarchitectural state causing a performance degradation. At the [&hellip;]<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","msr-author-ordering":null,"msr_publishername":"","msr_publisher_other":"","msr_booktitle":"","msr_chapter":"","msr_edition":"","msr_editors":"","msr_how_published":"","msr_isbn":"","msr_issue":"","msr_journal":"","msr_number":"","msr_organization":"","msr_pages_string":"","msr_page_range_start":"","msr_page_range_end":"","msr_series":"","msr_volume":"","msr_copyright":"","msr_conference_name":"MICRO","msr_doi":"","msr_arxiv_id":"","msr_s2_paper_id":"","msr_mag_id":"","msr_pubmed_id":"","msr_other_authors":"","msr_other_contributors":"","msr_speaker":"","msr_award":"","msr_affiliation":"","msr_institution":"","msr_host":"","msr_version":"","msr_duration":"","msr_original_fields_of_study":"","msr_release_tracker_id":"","msr_s2_match_type":"","msr_citation_count_updated":"","msr_published_date":"2024-11-1","msr_highlight_text":"","msr_notes":"","msr_longbiography":"","msr_publicationurl":"","msr_external_url":"","msr_secondary_video_url":"","msr_conference_url":"https:\/\/microarch.org\/micro57\/","msr_journal_url":"","msr_s2_pdf_url":"","msr_year":0,"msr_citation_count":0,"msr_influential_citations":0,"msr_reference_count":0,"msr_s2_match_confidence":0,"msr_microsoftintellectualproperty":true,"msr_s2_open_access":false,"msr_s2_author_ids":[],"msr_pub_ids":[],"msr_hide_image_in_river":0,"footnotes":""},"msr-research-highlight":[],"research-area":[13547],"msr-publication-type":[193716],"msr-publisher":[],"msr-focus-area":[],"msr-locale":[268875],"msr-post-option":[],"msr-field-of-study":[249619,251881],"msr-conference":[259561],"msr-journal":[],"msr-impact-theme":[],"msr-pillar":[],"class_list":["post-1058097","msr-research-item","type-msr-research-item","status-publish","hentry","msr-research-area-systems-and-networking","msr-locale-en_us","msr-field-of-study-computer-architecture","msr-field-of-study-microarchitecture"],"msr_publishername":"","msr_edition":"","msr_affiliation":"","msr_published_date":"2024-11-1","msr_host":"","msr_duration":"","msr_version":"","msr_speaker":"","msr_other_contributors":"","msr_booktitle":"","msr_pages_string":"","msr_chapter":"","msr_isbn":"","msr_journal":"","msr_volume":"","msr_number":"","msr_editors":"","msr_series":"","msr_issue":"","msr_organization":"","msr_how_published":"","msr_notes":"","msr_highlight_text":"","msr_release_tracker_id":"","msr_original_fields_of_study":"","msr_download_urls":"","msr_external_url":"","msr_secondary_video_url":"","msr_longbiography":"","msr_microsoftintellectualproperty":1,"msr_main_download":"","msr_publicationurl":"","msr_doi":"","msr_publication_uploader":[{"type":"url","viewUrl":"false","id":"false","title":"https:\/\/jovans2.github.io\/publications\/","label_id":"243109","label":0}],"msr_related_uploader":"","msr_citation_count":0,"msr_citation_count_updated":"","msr_s2_paper_id":"","msr_influential_citations":0,"msr_reference_count":0,"msr_arxiv_id":"","msr_s2_author_ids":[],"msr_s2_open_access":false,"msr_s2_pdf_url":null,"msr_attachments":[],"msr-author-ordering":[{"type":"text","value":"Jovan Stojkovic","user_id":0,"rest_url":false},{"type":"user_nicename","value":"Esha Choukse","user_id":40417,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=Esha Choukse"},{"type":"user_nicename","value":"Enrique Saurez","user_id":41820,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=Enrique Saurez"},{"type":"user_nicename","value":"&Iacute;&ntilde;igo Goiri","user_id":32102,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=&Iacute;&ntilde;igo Goiri"},{"type":"text","value":"Josep Torrellas","user_id":0,"rest_url":false}],"msr_impact_theme":[],"msr_research_lab":[],"msr_event":[],"msr_group":[282170],"msr_project":[658236],"publication":[],"video":[],"msr-tool":[],"msr_publication_type":"inproceedings","related_content":{"projects":[{"ID":658236,"post_title":"Serverless Infrastructure","post_name":"serverless-infrastructure","post_type":"msr-project","post_date":"2020-05-12 09:02:55","post_modified":"2025-02-06 11:16:02","post_status":"publish","permalink":"https:\/\/www.microsoft.com\/en-us\/research\/project\/serverless-infrastructure\/","post_excerpt":"Function as a Service (FaaS) is a software paradigm that is becoming increasingly popular.\u00a0 Multiple cloud providers offer FaaS as the interface to usage-driven, stateless (serverless) backend services.\u00a0 FaaS offers an intuitive, event-based interface for developing cloud-based applications.\u00a0 In contrast to the traditional cloud interface, in FaaS, users do not explicitly provision or configure virtual machines (VMs) or containers.\u00a0 FaaS users do not pay for resources they do not use either.\u00a0 Instead, users simply upload&hellip;","_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/658236"}]}}]},"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/1058097","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-research-item"}],"version-history":[{"count":4,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/1058097\/revisions"}],"predecessor-version":[{"id":1058436,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/1058097\/revisions\/1058436"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=1058097"}],"wp:term":[{"taxonomy":"msr-research-highlight","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-highlight?post=1058097"},{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=1058097"},{"taxonomy":"msr-publication-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-publication-type?post=1058097"},{"taxonomy":"msr-publisher","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-publisher?post=1058097"},{"taxonomy":"msr-focus-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-focus-area?post=1058097"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=1058097"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=1058097"},{"taxonomy":"msr-field-of-study","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-field-of-study?post=1058097"},{"taxonomy":"msr-conference","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-conference?post=1058097"},{"taxonomy":"msr-journal","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-journal?post=1058097"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=1058097"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=1058097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}